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