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
.