JavaScript Строки
JavaScript строки используются для хранения и манипулирования текстом.
JavaScript Строки
Строка JavaScript содержит ноль или более символов, заключенных в кавычки.
Вы можете использовать одинарные или двойные кавычки:
Пример
var carName1 = "Volvo XC60";
// Двойные кавычки
var carName2 = 'Volvo XC60'; // Одинарные кавычки
Попробуйте сами »
Вы можете использовать кавычки внутри строки, если они не соответствуют кавычкам, окружающим строку:
Пример
var answer1 = "Это правильно";
var answer2 = "Его зовут 'Johnny'";
var answer3 = 'Его зовут 'Johnny'';
Попробуйте сами »
Длина строки
Чтобы найти длину строки, используйте встроенное свойство length:
Экранирующий символ
Поскольку строки должны быть записаны в кавычках, JavaScript будет неправильно понимать эту строку:
var x = "Мы так называемые "Викинги" из севера.";
Строка будет разделена на фразе "Мы так называемые ".
Решение, чтобы избежать этой проблемы, заключается в использовании экранирующего символа обратной косой черты (обратного слэша).
Экранирующий символ обратной косой черты (\) превращает специальные символы в строковые символы:
| Код | Результат | Описание |
|---|---|---|
| \' | ' | Одинарные кавычки |
| \" | " | Двойные кавычки |
| \\ | \ | Обратный слэш |
Последовательность \' вставляет двойную кавычку в строку:
Последовательность \' вставляет одинарную кавычку в строку:
Последовательность \\ вставляет обратный слэш в строку:
Шесть других экранирующих последовательностей, валидных в JavaScript:
| Код | Результат |
|---|---|
| \b | Backspace (возврат на одну позицию) |
| \f | Подача формы |
| \n | Новая линия (новая строка) |
| \r | Возврат каретки |
| \t | Горизонтальный табулятор |
| \v | Вертикальный табулятор |
Вышеуказанные 6 управляющих символов изначально были предназначены для управления пишущими машинками, телетайпами и факсимильными аппаратами. Они не имеют никакого смысла в HTML.
Прерывание длинных строк кода
Для лучшей читаемости программисты часто предпочитают избегать строк кода длиннее 80 символов.
Если JavaScript объявление (оператор) не помещается в одну строку, лучше всего его разбить после объявления (оператора):
Вы также можете разбить строку кода внутри текстовой строки с помощью одного обратного слэша:
Метод обратного слэша \ не является предпочтительным методом. Это может не иметь универсальной поддержки. Некоторые браузеры не допускают пробелов за символом обратного слэша \.
Более безопасный способ разбить строку, это использовать добавление строки:
Вы не можете разбить строку кода с помощью обратного слэша:
Строки могут быть объектами
Обычно строки JavaScript являются примитивными значениями, созданными из литералов:
var firstName = "John";
Но строки также могут быть определены как объекты с ключевым словом new:
var firstName = new String("John");
Пример
var x = "John";
var y = new String("John");
// typeof x вернёт строку
// typeof y вернёт объект
Попробуйте сами »
Не создавайте строки как объекты. Это замедляет скорость выполнения.
Ключевое слово new усложняет код. Это может привести к неожиданным результатам:
При использовании оператора == одинаковые строки равны:
Пример
var x = "John";
var y = new String("John");
// (x == y) верно, потому что х и у имеют равные значения
Попробуйте сами »
При использовании оператора === одинаковые строки не равны, поскольку оператор === ожидает равенства как по типу, так и по значению.
Пример
var x = "John";
var y = new String("John");
// (x === y) является false (неверно), потому что x и y имеют разные типы (строка и объект)
Попробуйте сами »
Или даже хуже. Объекты нельзя сравнивать:
Пример
var x = new String("John");
var y = new String("John");
// (x == y) является false (неверно), потому что х и у разные объекты
Попробуйте сами »
Пример
var x = new String("John");
var y = new String("John");
// (x === y) является false (неверно), потому что х и у разные объекты
Попробуйте сами »
Обратите внимание на разницу между (x==y) и (x===y).
Сравнение двух JavaScript объектов будет всегда возвращать false.

