Строка в JavaScript — это последовательность символов Unicode. Это просто массив символов. Каждый символ занимает 16 бит.
Каждый символ в строке имеет свою позицию или индекс. Мы можем получить к нему доступ по его индексу.
Индексация строки, как и массива , начинается с нуля. Индекс первого символа строки равен нулю.
Строка заключена в пару двойных или одинарных кавычек. Оба способа являются допустимыми для представления строки в JavaScript.
Символов, заключенных в кавычки, может быть ноль или больше. Давайте рассмотрим следующие примеры.
let name1 = "Иван"; // Двойные кавычки
let name2 = 'Пётр'; // Одинарные кавычки.
Мы можем использовать кавычки внутри строки, пока они не совпадают с кавычками, окружающими строку. Рассмотрим следующий пример.
let message1 = "Я люблю 'программирование на JavaScript'";
let message2 ='Я люблю "программирование на JavaScript"';
- Строковый объект в JavaScript
- Способы создания строки в JavaScript
- По строковому литералу
- По строковому объекту (используя ключевое слово new)
- Длина строки (свойство объекта String)
- Пример: Определение длины строк
- Экранирование объекта
- Таблица: Коды экранирования строковых объектов
- Примеры программ JavaScript String
- Сравнение объектов JavaScript String с использованием операторов == и ===
- Свойство прототипа объекта String
- Свойство конструктора объекта String
Строковый объект в JavaScript
В JavaScript строка — это объект. Любая переменная, значение которой — строка, на самом деле является строковым объектом. То есть JavaScript сохраняет строковое значение как строковый объект в переменной.
Объект string в JavaScript — это оболочка вокруг примитивного значения string. Это наиболее часто используемый объект в JavaScript.
Способы создания строки в JavaScript
Существует два способа создания строки в JavaScript. Они следующие:
- По строковому литералу
- По строковому объекту (используя ключевое слово new и конструктор String())
Давайте разберем каждый способ по отдельности с помощью примеров.
По строковому литералу
Мы создаем строковый литерал, используя либо одинарные, либо двойные кавычки. Общий синтаксис для создания строкового объекта с использованием строкового литерала следующий:
let stringname = "значение строки";
Давайте рассмотрим простой пример создания строкового литерала.
<script>
let str = "Это строковый литерал"; // создаёт строковый литерал как значение
console.log(str);
</script>
Вывод: Это строковый литерал
Большинство программистов JavaScript используют одинарные кавычки в строковом значении и двойные кавычки снаружи строкового значения, например:
let message = "Каждый кулик хвалит 'своё' болото";
По строковому объекту (используя ключевое слово new)
Мы также можем создать строку как экземпляр объекта String, используя ключевое слово new и конструктор String(). Общий синтаксис создания объекта string с использованием ключевого слова new выглядит следующим образом:
stringObjectName = new String(string);
Здесь stringObjectName — имя создаваемого нами объекта. Область параметров конструктора String() содержит строковый литерал в одинарных или двойных кавычках.
Строки, созданные с помощью этой функции-конструктора, считаются объектами в JavaScript. Рассмотрим следующий пример.
let str = new String("Продам Гараж");
Здесь мы создали экземпляр объекта String для строки «Продам Гараж». Если мы найдем его тип данных с помощью оператора typeof, то обнаружим, что это объект, а не строка.
Давайте рассмотрим пример программы, в которой мы создадим строку в JavaScript с помощью ключевого слова new
и функции String()
.
<script>
let str = new String("Добро пожаловать на html-templates.info");
console.log(str);
</script>
Вывод: Добро пожаловать на html-templates.info
Примечание: Хотя создание строки в JavaScript с использованием ключевого слова new не рекомендуется, поскольку это потребляет больше памяти и замедляет скорость выполнения. Объекты Strings могут давать неожиданный результат.
Длина строки (свойство объекта String)
Наиболее распространенным свойством объекта String в JavaScript является свойство «length». Это встроенное свойство сообщает нам, сколько символов, включая пробелы и знаки препинания, содержится в строке.
Общий синтаксис для определения длины строки JavaScript выглядит следующим образом:
stringObjectName.length;
Пример: Определение длины строк
Давайте создадим программу JavaScript для определения длины строк, используя ее свойство length.
<script>
// Создать строковые литералы.
let str1 = "abcde";
let str2 = "a b c d e";
let str3 = "\"abcde\"";
// Вычислить длины строк.
let strLength1 = str1.length;
let strLength2 = str2.length;
let strLength3 = str3.length;
// Показать длины строк.
console.log(strLength1);
console.log(strLength2);
console.log(strLength3);
</script>
Вывод: 5 9 7
Как видно из приведенного выше вывода, все символы, включая пробелы и знаки препинания внутри строк, учитываются при подсчете длины.
Примечание: для нулевой строки свойство длины равно нулю.
Экранирование объекта
При создании строки в JavaScript мы не можем напрямую добавлять несколько специальных символов в строку. Для добавления этих специальных символов в строки JavaScript предоставляет набор управляющих кодов, которые приведены ниже в таблице:
Таблица: Коды экранирования строковых объектов
Escape | Описание | Пример | Результат |
---|---|---|---|
\' | Одинарная кавычка | «willn\’t be» | willn’t be |
\" | Двойные кавычки | «I \»think\» I \»am\»» | I «think» I «am» |
\\ | Обратная косая черта | «a\\b\\c» | a\b\c |
\n | Новая строка | «One\nTwo» | One Two |
\r | Возврат каретки | «One\rTwo» | One Two |
\t | Горизонтальная табуляция | «One\ttwo\tThree» | One Two Three |
\b | Возврат на одну позицию | «Correctoin\b\b\bion» | Correction |
Как вы можете видеть в таблице выше, все специальные экранированные символы начинаются с обратной косой черты (\). Давайте рассмотрим пример программы, основанной на символе экранированной последовательности.
<script>
// Создать строковые литералы.
let str1 = "willn't be";
let str2 = "I \"think\" I \"am\"";
let str3 = "One\\Two\\Three";
let str4 = "This is\na string";
let str5 = "One\tTwo\tThree";
console.log(str1);
console.log(str2);
console.log(str3);
console.log(str4);
console.log(str5);
</script>
Вывод: willn't be I "think" I "am" One\Two\Three This is a string One Two Three
Примеры программ JavaScript String
Давайте рассмотрим несколько важных примеров, основанных на строковом литерале и строковом объекте.
Пример 1: При использовании оператора == str1 и str2 равны.
<script>
let str1 = "Я строка"; // создать строковый литерал.
let str2 = new String("Я строка"); // создать строковый объект.
let s = str1 == str2;
console.log(s);
</script>
Вывод: true
Пример 2: При использовании оператора === str1 и str2 не равны.
<script>
let str1 = "Я строка";
let str2 = new String("Я строка");
let s = str1 === str2;
console.log(s);
</script>
Вывод: false
Сравнение объектов JavaScript String с использованием операторов == и ===
Давайте создадим программу JavaScript для сравнения двух строковых объектов с помощью оператора ==.
<script>
let str1 = new String("Привет");
let str2 = new String("Привет");
let s = str1 == str2;
console.log(s);
</script>
Вывод: false
Давайте создадим программу JavaScript для сравнения двух строковых объектов с помощью оператора ===.
<script>
let str1 = new String("Привет");
let str2 = new String("Привет");
let s = str1 === str2;
console.log(s);
</script>
Вывод: false
Примечание: сравнение двух строковых объектов в JavaScript всегда возвращает false.
Свойство прототипа объекта String
Это свойство позволяет нам добавлять свойства или методы к строковым объектам на странице. Следующий код скрипта демонстрирует пример.
<script>
// This statement adds a property with a value to the string object.
String.prototype.attitude = "cool";
// Create a new instance of String object.
let str = new String("John");
console.log(str.attitude); // We have used the new property with the instance of string object.
</script>
Вывод: cool
В этом примере программы мы использовали свойство прототипа для добавления свойства «attitude» к объекту string. Следовательно, объект string «John» имеет свойство attitude «cool»! Это второе свойство объекта String.
Свойство конструктора объекта String
Это свойство конструктора содержит значение функции конструктора для экземпляра объекта. Чтобы использовать свойство конструктора, нам нужно создать экземпляр объекта String, а не литерал. Следующий код демонстрирует пример.
<script>
// Create a new instance of String object.
let str = new String("Hello JavaScript");
// This statement will print the value of constructor property on the web page.
console.log(str.constructor);
</script>
Output: ƒ String() { [native code] }
Примечание: Объект String в JavaScript имеет только три свойства: length, prototype и constructor. Мы можем использовать свойство length как со строковыми литералами, так и со строковыми объектами.
Но для использования свойств прототипа и конструктора нам нужны строковые объекты. То есть, мы не можем использовать свойства прототипа и конструктора со строковыми литералами.
В этом уроке вы узнали о строках в JavaScript с помощью примеров. Надеюсь, вы поняли, как создавать строки, используя создание строковых литералов и строковых объектов.
Строки — важная глава любого языка программирования. В следующем уроке мы обсудим методы объекта String.