Определение строки
Строкой считается любая последовательность символов в пределах двойных или одинарных кавычек.
1 2 |
var someString = "This is a string"; var anotherString = 'This is another string'; |
Для создания строки с кавычками, нужно их экранировать (обособить) с помощью символа обратный слэш \
или использовать два разных вида кавычек.
1 2 3 4 5 6 |
var string = "String with \"quoted\" word"; var string = 'String with \'quoted\' word'; var string = 'String with "quoted" word'; var string = "String with 'quoted' word"; var string = "It's single quote string"; //Апостроф внутри строки var string = '<div id="block">This is block</div>'; //В строке может содержаться код HTML |
Помимо двойных и одинарных кавычек, экранизации подлежат и другие символы (escape последовательности), управляющие форматированием текста.
Символ | Обозначение |
---|---|
\' | одинарная кавычка |
\'' | двойная кавычка |
\\ | обратный слэш (не путать с // - знаком начала комментария) |
\n | новая строка (работает как кнопка Enter) |
\r | возврат каретки в начало строки (работает как кнопка Home) |
\t | табуляция (работает как кнопка Tab) |
\b | удаление символа (работает как кнопка Backspace) |
\f | печать с новой страницы (устаревшее) |
\v | вертикальная табуляция (устаревшее) |
\a | звуковой сигнал (устаревшее) |
\xXX | символ из Latin-1, где XX шестнадцатеричные цифры (например: \xAF - символ '-') |
\XXX | символ из Latin-1, где XXX восьмеричные цифры от 1 до 377 (например: \300 - символ 'À') |
\ucXXXX | символ из Unicode, где XXXX шестнадцатеричные цифры (например: \uc454 - символ '쑔') |
В случае если строка достаточно длинная, то для более легкого чтения ее можно разбить на подстроки с помощью символа обратного слэша \
, не нарушая при этом самой структуры строки.
1 2 3 |
var longString = "Lorem ipsum dolor sit amet, consectetur adipisicing elit.\ Aliquam eligendi non ipsum autem facere repellendus doloremque, \ architecto obcaecati culpa dolores eveniet qui, beatae suscipit ab nisi ad vero, sed cum!"; |
Однако использование следующего приема для разбиения кода недопустимо.
1 2 |
var string = "Lorem ipsum dolor sit amet," + \ "consectetur adipisicing elit."; |
Строка как объект
По умолчанию в JavaScript строка принимает фиксированные значения, однако с помощью ключевого слова new
и метода string()
строку можно превратить в объект и определить для неё какие либо свойства.
1 2 |
var stringObject = new string("This string is object"); //Определение строки как объектный тип данных stringObject.name = "newString"; //Определение свойства name со значением newString |
Приведение строки к типу объект в большинстве случаев не представляет ценности, более того, такое преобразование способствует замедлению выполнения кода и может привести к непредвиденным последствиям.
Сравнение строк
Строки как и другие литералы в JavaScript, строки можно сравнить двумя способами, с помощью слудующих операторов:
- Оператор == - сравнение по значению
- Оператор === - сравнение по значению и по типу данных
1 2 3 4 5 6 7 8 9 |
var a = "one"; var b = "two"; var c = "one"; var x = new string("one"); // (a == b) - false Значения не равны; // (a == c) - true Значения равны; // (a == x) - true Значения равны; // (a === c) - true Значения и типы переменных равны; // (a === x) - false Значения равны, а типы переменных нет, т.к. a - строка, x - объект. |
Перевод других типов данных в строку
Для того чтобы перевести в строку такие типы данных как integer
(целое число), array
(массив), boolean
(логический тип), а также другие типы, нужно всего лишь сложить значение любого типа с пустой строкой.
1 2 3 4 5 6 |
//Перевод целого числа в строку var num = 454; //В переменной num хранится число - 454 num = num + ""; //Переопределение num, теперь в ней хранится строка - "454" //Перевод массива в строку var arr = ['one','two','three']; //В arr сейчас хранится массив Array ['one','two','three'] arr += ""; //После переопределения arr содержит строку "one, two, three" |
Использование методов и свойств строк
Для манипулирования строками в Javascript как и во многих других языках программирования предусмотрена возможность использования методов(объектных функций) bold()
, indexOf()
, split()
, ... и свойств length
, prototype
, ... . Вызов методов и свойств осуществляется через оператор .
(точка). Вызов объектных функций может быть осуществлен не однократно, образуя тем самым цепочки методов.
1 2 3 4 |
var str = "Text"; str.italics(); //Преобразование строки в курсив (<i>Text</i>) //Цепочка методов (каждый метод вызывается из значения, которое возвратил предыдущий метод) str.toUpperCase().big().bold() // Результат - <b><big>TEXT</big></b> |
Применение методов и свойств к простым строковым литералам невозможно, поэтому если интерпретатор видит вызов метода из строки, то он автоматически преобразует ее в объект и делает вызов метода или свойства уже из строки - объекта.
Важно заметить, что вызов метода не переопределяет строку, т.к. работает с ее копией и начальное значение строки остается неизменным.
1 2 3 |
var str = " Random text written "; //удалим пробелы с начала и конца строки str.trim(); //Результат - "Random text written" str; //Само значение строки не изменилось - " Random text written " |
Свойства строк
Свойство | Описание | ||
---|---|---|---|
constructor | возвращает функцию-конструктор строки | ||
|
|||
length | возвращает длину (количество символов) строки | ||
|
|||
prototype | позволяет добавить свойства и методы к объекту (если строка - объект) | ||
|
Методы строк
Метод | Описание | ||
---|---|---|---|
charAt() | возвращает символ под указанным номером | ||
|
|||
charCodeAt() | возвращает код Unicode символа под указанным номером | ||
|
|||
concat() | соединяет строки в одну и возвращает ее как новую строку | ||
|
|||
fromCharCode() | переводит код Unicode в символ | ||
|
|||
indexOf() | возвращает номер первого искомого символа | ||
|
|||
lastIndexOf() | возвращает номер последнего искомого символа | ||
|
|||
localeCompare() | сравнивает очередность строк (сортировка по алфавиту) | ||
|
|||
match() | ищет строки удовлетворяющие условию регулярного выражения | ||
|
|||
replace() | заменяет часть строки на новое значение | ||
|
|||
search() | возвращает первый номер символа искомой строки | ||
|
|||
slice() | вырезает часть строки и возвращает ее как новую строку | ||
|
|||
split() | разбивает строку на массив подстрок | ||
|
|||
substr() | вырезает строку до определенной позиции | ||
|
|||
substring() | вырезает строку с начальной и конечной позиций | ||
|
|||
toLocaleLowerCase() | приводит строку к нижнему регистру, в соответствии с локальными настройками | ||
|
|||
toLocaleUpperCase() | приводит строку к верхнему регистру в соответствии с локальными настройками | ||
|
|||
toLowerCase() | приводит строку к нижнему регистру (строчные буквы) | ||
|
|||
toUpperCase() | приводит строку к верхнему регистру (заглавные буквы) | ||
|
|||
toString() | возвращает значение строки - объекта | ||
|
|||
trim() | удаляет пробелы в начале и конце строки | ||
|
|||
valueOf() | возвращает простое значение строки - объекта | ||
|