English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы Учебник JavaScript

Объекты JavaScript

Функции JavaScript

JS HTML DOM

JS Браузер BOM

AJAX Основы Учебник

JavaScript Референс Мануал

Строки (String) в JavaScript

Строка представляет собой последовательность одного или нескольких символов, состоящую из букв, цифр или знаков.

Строки JavaScript являются типом данных primitive и не изменяемы, что означает, что они неизменны.

Строки JavaScript

Строки 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.