JavaScript Строки
JavaScript строки используются для хранения и манипулирования текстом.
JavaScript Строка
JavaScript строка - от нуля или более символов, записвать в кавычках.
var x = "Щипунов Андрей";
Попробуйте сами »
Вы можете использовать одинарные или двойные кавычки:
var carName1 = "Вольво XC60";
// Двойные кавычки
var carName2 = 'Вольво XC60'; // Одинарные кавычки
Попробуйте сами »
Вы можете использовать кавычки внутри строки, если они не соответствуют кавычкам, окружающим строку:
var answer1 = "Все' в порядке";
var answer2 = "Его зовут 'Андрей'";
var answer3 = 'Его зовут "Андрей"';
Попробуйте сами »
JavaScript Длина строки
Чтобы узнать длину строки, используйте встроенное length
свойство:
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
Попробуйте сами »
JavaScript Специальные символы
Поскольку строки должны быть записаны в кавычках, JavaScript неправильно поймет эту строку:
var x = "Мы так называемые "Викинги" с севера.";
Строка будет перерезана до "Мы так называемые".
Чтобы избежать этой проблемы, можно использовать escape - символ обратной косой черты.
Управляющий (\
) символ с обратной косой чертой, превращает специальные символы в строковые символы:
Код | Результат | Описание |
---|---|---|
\' | ' | Одиночная кавычка |
\" | " | Двойная кавычка |
\\ | \ | Обратная косая черта |
Последовательность escape \"
вставляет двойные кавычки в строку:
var x = "Мы так называемые \"Викинги\" с севера.";
Попробуйте сами »
Последовательность escape \'
вставляет одинарную кавычку в строку:
var x = 'Все\'в поряде.';
Попробуйте сами »
Последовательность escape \\
вставляет обратную косую черту в строку:
var x = "Символ \\ называется обратной косой чертой.";
Попробуйте сами »
В JavaScript действительны шесть других escape - последовательностей:
Код | Результат |
---|---|
\b | Возврат |
\f | Форма подачи |
\n | Новая линия |
\r | Возврат |
\t | Горизонтальная табуляция |
\v | Вертикальная табуляция |
Приведенные выше 6 escape - символов изначально были разработаны для управления пишущими машинками, телетайпами и факсами. Они не имеют смысла в HTML.
JavaScript Прерывание строки кода
Для лучшей читаемости программисты часто избегают строк кода длиннее 80 символов.
Если оператор JavaScript не помещается в одну строку, лучше всего его прервать после оператора:
document.getElementById("demo").innerHTML =
"Привет Андрей!";
Попробуйте сами »
Вы также можете разбить строку кода внутри текстовой строки с помощью одной обратной косой черты:
document.getElementById("demo").innerHTML =
"Привет \
Андрей!";
Попробуйте сами »
Этот \
метод не является предпочтительным.
У него может не быть универсальной поддержки.
Некоторые браузеры не допускают пробелов после \
символа.
Более безопасный способ разбить строку - использовать сложение строки:
document.getElementById("demo").innerHTML = "Привет " +
"Андрей!";
Попробуйте сами »
Вы не можете разбить строку кода обратной косой чертой:
document.getElementById("demo").innerHTML = \
"Привет Андрей!";
Попробуйте сами »
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
.