От автора: В JavaScript строкой считается любой текст, заключенный в одинарные или двойные кавычки, включая буквы, цифры и Юникод символы. В статье мы с вами познакомимся с работой со строками в JavaScript.
Итак, в JavaScript строкой считается любой текст, заключенный в одинарные или двойные кавычки, включая буквы, цифры и Юникод символы:
1 2 3 |
"Это строка" 'Это тоже строка' "Вечно 21, тоже, является строкой" |
Одинарные кавычки также могут присутствовать, как часть строки, если вся строка заключена в двойные кавычки, и наоборот.
1 |
'Так тоже "нормально"' |
То, какие кавычки вы будете использовать, не имеет никакого значения, но вам стоит определиться с выбором и использовать всегда только один вид кавычек. Данный стиль кода должен соблюдаться и другими разработчиками в вашей команде, вместе с остальными договоренностями по правилам написания кода, чтобы поддерживать однообразие кода, избегать недопонимания и уменьшить количество багов.
В остальных случаях кавычки и другие специальные символы внутри строк должны экранироваться с помощью обратного слеша (ниже примеры результата, который получается при экранировании):
\’ — одинарная кавычка
\» — двойная кавычка
\\ — обратный слеш
\n — новая строка
\r — возврат каретки
\t — таб
Например:
1 |
"Это текст \t с использованием знаков \t табуляции" |
Поскольку строки могут содержать Юникод символы, по возможности следует использовать настоящие «умные» кавычки и апострофы:
1 |
var quote = "“Это цитата.”"; |
Индексирование строк
Как и в случае с массивами, считается, что первый символ строки находится на нулевой позиции, второй — на первой и т.д. Обратите внимание на то, что свойство length у строк учитывает каждый символ, включая пробелы, но не включая экранированные символы:
1 2 3 |
var nicchia = "Virginia Elisabetta Luisa Carlotta Antonietta Teresa Maria Oldoini"; nicchia.length > 66 |
Существует много функций и методов, предназначенных для работы со строками, о которых я расскажу в следующих статьях.
Числа в качестве строк
Иногда вы будете получать число, которое JavaScript почему-то не будет воспринимать, как число. Хорошим примером этого служит HTML5 поле ввода типа number:
1 2 |
<label for="weight">Enter the weight of the package in kilos</label> <input type="number" id="weight" min="1" max="10" value="0"> |
Если мы попробуем просто считать это значение в JavaScript и прибавить к нему единицу:
1 2 3 4 |
document.getElementById("weight"); weight.addEventListener("input", function(){ console.log(weight.value + 1); }) |
… то результат, который мы получим в консоли при вводе единицы в поле ввода, будет равен не «2», а «11». Это вызвано проблемой с конкатенацией: метод value обрабатывает полученное из поля ввода значение не как число, а как строку. Существует два способа, как это исправить:
Использовать правильный метод для данного случая: weight.valueAsNumber, вместо weight.value. В результате мы получим настоящее число.
Оставить метод value, но привести полученное значение к нужному типу с помощью parseInt:
1 2 3 4 |
weight = document.getElementById("weight"); weight.addEventListener("input", function(){ console.log(parseInt(weight.value, 10) + 1); }) |
Я расскажу более подробно о parseInt в одной из следующих статей.
Конвертирование чисел в строки
Иногда вам потребуется сделать обратное: сконвертировать число в строку. Если у меня есть переменная wonders:
1 |
var wonders = 7; |
… Я могу превратить ее в строку, используя метод .toString():
1 |
var wonderString = wonders.toString(); |
… или добавив к ней пустую строку:
1 |
var wonderString = wonders + ""; |
Можно использовать оба способа, хотя второй может оказаться быстрее при работе с циклами (когда речь идет о миллионах операций).
Автор: Dudley Storey
Источник: //demosthenes.info/
Редакция: Команда webformyself.