English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Строка представляет собой последовательность одного или нескольких символов, состоящую из букв, цифр или знаков.
Строки JavaScript являются типом данных primitive и не изменяемы, что означает, что они неизменны.
Строки JavaScript представляют собой ноль или несколько символов, заключенных в кавычки.
var x = "JavaScript教程 ";Проверьте, посмотри на‹/›
В JavaScript вы можете выбрать:Одинарные кавычкиилиДвойные кавычкичтобы обернуть строку. Оба метода работают нормально:
var msg1 = "Hello world"; // Использование двойных кавычек var msg2 = 'Hello world'; // Использование одинарных кавычекПроверьте, посмотри на‹/›
Вы можете использовать кавычки в строках, если они не совпадают с кавычками вокруг строки:
var str1 = 'She said "Hey" and left'; // 单引号中的双引号 var str2 = "She said 'Hey' and left"; // Одинарная кавычка в двойных кавычках var str3 = "Let's have a cup of tea"; // Одинарная кавычка в двойных кавычках var str4 = 'We\'ll never give up'; // Использование обратной косой черты для эскапа одинарной кавычкиПроверьте, посмотри на‹/›
Самый новый способ создания строки называетсяКонстанты шаблонов (template literals).
Шаблонные строки(template literal) используют обратные кавычки (` `), и они работают так же, как и обычные строки:
var x = `This string uses backticks.`;Проверьте, посмотри на‹/›
lengthЭта функция возвращает длину строки. Длина пустой строки составляет 0.
var str = 'JavaScript tutorial '; str.length;// return 15Проверьте, посмотри на‹/›
Внимание:Пробел также считается символом.
С串联意味着 объединение двух или более строк для создания новой строки.
+ Оператор используется для добавления (соединения) строк.
var str1 = "quick brown fox"; var str2 = "over the lazy dog"; var str3 = "The " + str1 + " jumps " + str2;Проверьте, посмотри на‹/›
Шаблонные строки(template literal)Одна из особенных функций функции - это возможность включать выражения и переменные в строку. Не нужно использовать串联, можно использовать синтаксис ${} для вставки переменных.
var str1 = "quick brown fox"; var str2 = "over the lazy dog"; var str3 = `The ${str1} jumps ${str2}.`;Проверьте, посмотри на‹/›
В этом случае использование шаблонных строк (template literals) может быть более удобным и легким для написания.
Поскольку строка должна быть заключена в кавычки, следующее содержимое даст ошибку, так как оно может запутать браузер в конце строки:
var x = 'We'll never give up'; var y = "She said 'Hey' and left";
Эскапные последовательности означают, что мы обрабатываем их, чтобы их识别или как текст, а не часть кода.
В JavaScript мы достигаем этой цели, добавляя обратную косую черту () перед символом.
Code | Результат | Описание |
---|---|---|
\' | ' | Одинарные кавычки |
\" | ” | Двойные кавычки |
\\\\ | \ | 反斜杠 |
Эта последовательность\' вставка одной кавычки в строке:
var x = 'We\'ll never give up';Проверьте, посмотри на‹/›
Эта последовательность " вставка двойных кавычек в строке:
var x = "Она сказала \"Hey\" и ушла";Проверьте, посмотри на‹/›
Эта последовательность \\ вставляет обратную косую черту в строку:
var x = "Знак \\ называется обратной косой чертой";Проверьте, посмотри на‹/›
В JavaScript также действительны еще шесть эскейп-сериев:
Code | Описание |
---|---|
\b | Клавиша退格 |
\f | Страничный перевод |
\n | Новый абзац |
\r | Возврат каретки |
\t | Горизонтальный табулятор |
\v | Вертикальный табулятор |
Эскейп-серии также полезны в тех случаях, когда используются символы, которые нельзя ввести с помощью клавиатуры.
Чтобы обеспечить наилучшую читаемость, следует избегать превышения кодовой строки 80 символов.
Если JavaScript-оператор не умещается на одной строке, лучшее место для его разрыва - после оператора:
document.getElementById("para").innerHTML = "Сумма 20 и 30 равна "; sum;Проверьте, посмотри на‹/›
Написание очень длинной строки на одной строке быстро становится трудно читать и использовать.
Мы можем использовать оператор串联 (+) для отображения строк на нескольких строках.
var str = "Загрязнение воздуха является проникновением химических веществ в ", "Атмосфера. Она разрушает экологический баланс и приводит к ", "Несколько заболеваний.";Проверьте, посмотри на‹/›
Кроме использования нескольких строк, можно использовать символы escape \.
var str = "Загрязнение воздуха является проникновением химических веществ в ", Атмосфера. Она разрушает экологический баланс и приводит к ", Несколько заболеваний.";Проверьте, посмотри на‹/›
Внимание:Данный метод (") не является предпочтительным, так как он может вызывать проблемы в некоторых браузерах и minifiers.
Чтобы сделать код более читаемым, мы можем использоватьКонстанты шаблонов (template literals)Строки. Этих достаточно, чтобы избежать необходимости串联 или экранирования длинных строк.
var str = `Загрязнение воздуха является проникновением химических веществ в Атмосфера. Она разрушает экологический баланс и приводит к Несколько заболеваний.`;Проверьте, посмотри на‹/›
Важно знать все методы создания строк, разбитых на несколько строк, так как различные библиотеки могут использовать различные стандарты.
Обычно, строки в JavaScript создаются из литералов текста:
var city = "New Delhi";
Но также можно определить строку как объект с помощью ключевого слова new:
var city = new String("New Delhi");
Чтобы проверить различия между ними, мы初始化ируем элементарную строку и объект строки.
var str1 = "New Delhi"; var str2 = new String("New Delhi"); typeof str1 // возвращает строку typeof str2 // возвращает объектПроверьте, посмотри на‹/›
Внимание:Не создавайте строки как объекты. Это снизит производительность выполнения и может привести к неожиданным результатам.
При использовании оператора == равные строки равны:
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 == str2); // возвращается true, так как значения str1 и str2 равныПроверьте, посмотри на‹/›
При использовании оператора === равные строки не равны, так как оператор === ожидает значения и типов, которые равны:
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 === str2); // возвращается false, так как типы str1 и str2 различаютсяПроверьте, посмотри на‹/›
Невозможно сравнить объекты:
var str1 = new String("New Delhi"); var str2 = new String("New Delhi"); document.write(str1 == str2); // так как str1 и str2 являются различными объектами, поэтому возвращается false document.write(str1 === str2); // так как str1 и str2 являются различными объектами, поэтому возвращается falseПроверьте, посмотри на‹/›
Внимание (==) и (===) различаются между собой. При сравнении двух объектов JavaScript всегда будет возвращаться false.