Basics
Строковые литералы
Строковый литерал – это последовательность из нуля или более Unicode символов, заключенная в одинарные или двойные кавычки (' или "). Сами символы двойных кавычек могут содержаться в строках, ограниченных символами одинарных кавычек, а символы одинарных кавычек – в строках, ограниченных символами двойных кавычек. Строковые литералы должны записываться в одной строке программы и не могут разбиваться на две строки. Чтобы включить в строковый литерал символ перевода строки, следует использовать последовательность символов \n, описание которой приведено в следующем разделе. Примеры строковых литералов:
Ограничивая строку одинарными кавычками, необходимо проявлять осторожность в обращении с апострофами, употребляемыми в английском языке для обозначения притяжательного падежа, и в сокращениях, как, например, в словах «can't» и «O'Reilly's». Поскольку апостроф и одиночная кавычка – это одно и то же, необходимо при помощи символа обратного слэша (\) экранировать апострофы, расположенные внутри одиночных кавычек.
Программы на клиентском JavaScript часто содержат строки HTML-кода, а HTML-код, в свою очередь, часто содержит строки JavaScript-кода. Как и в JavaScript, для ограничения строк в HTML применяются либо одинарные, либо двойные кавычки. Поэтому, при объединении JavaScript и HTML-кода, есть смысл придерживаться одного «стиля» кавычек для JavaScript, а другого – для HTML. В следующем примере строка «Спасибо» в JavaScript-выражении заключена в одинарные кавычки, а само выражение, в свою очередь, заключено в двойные кавычки как значение HTML-атрибута обработчика событий:
Управляющие последовательности в строковых литералах
Символ обратного слэша (\) имеет специальное назначение в JavaScript-строках. Вместе с символами, следующими за ним, он обозначает символ, не представимый внутри строки другими способами. Например, \n – это управляющая последовательность (escape sequence), обозначающая символ перевода строки.
Другой пример – это последовательность \', обозначающая символ одинарной кавычки. Эта управляющая последовательность необходима для включения символа одинарной кавычки в строковый литерал, заключенный в одинарные кавычки. Теперь становится понятно, почему мы называем эти последовательности управляющими: здесь символ обратного слэша позволяет управлять интерпретацией символа одинарной кавычки. Вместо того, чтобы отмечать ею конец строки, мы используем ее как апостроф:
Константа | Значение |
\0 | Символ NUL (\u0000) |
\b | «Забой» (\u0008) |
\t | Горизонтальная табуляция (\u0009) |
\n | Перевод строки (\u000A) |
\v | Вертикальная табуляция (\u000B) |
\f | Перевод страницы (\u000C) |
\r | Возврат каретки (\u000D) |
\" | Двойная кавычка (\u0022) |
\' | Одинарная кавычка (\u0027) |
\ | Обратный слэш (\u005C) |
Операции со строками
Одной из встроенных возможностей JavaScript является способность конкатенировать строки. Если оператор +
применяется к числам, они складываются, а если к строкам - они объединяются, при этом вторая строка добавляется в конец первой. Например:
Для определения длины строки – количества содержащихся в ней символов – используется свойство length. Так, если переменная s содержит строку, то длину последней можно получить следующим образом:
Для работы со строками существует несколько методов. Так, можно получить последний символ в строке s:
Чтобы извлечь второй, третий и четвертый символы из строки s, применяется инструкция:
Определить позицию первого символа «a» в строке s можно следующим образом:
Есть еще и ряд методов, которые можно использовать при работе со строками. Полностью эти методы документированы в описании объекта String. Из предыдущих примеров можно понять, что JavaScript-строки (и, как мы увидим позднее, массивы JavaScript) индексируются, начиная с 0. Другими словами, порядковый номер первого символа строки равен нулю. В некоторых реализациях JavaScript отдельные символы могут извлекаться из строк (но не записываться в строки) при обращении к строкам как к массивам, в результате приведенный ранее вызов метода charAt() может быть записан следующим образом:
Преобразование строк в числа
Когда строка используется в числовом контексте, она автоматически преобразуется в число. Например, следующее выражение является вполне допустимым:
Это обстоятельство можно взять на вооружение при необходимости преобразовать строку в число; для этого достаточно просто вычесть из строки значение 0:
Менее сложный и более прямолинейный способ преобразования строки в число заключается в обращении к конструктору Number() как к обычной функции:
Недостаток данного способа преобразования строки в число заключается в его чрезмерной строгости. Этот способ может использоваться только для преобразования десятичных чисел, и, хотя он допускает наличие ведущих и оконечных символов пробела, появление других нецифровых символов после числа в строке недопустимо.
Более гибкий способ преобразования обеспечивается функциями parseInt() и parseFloat(). Эти функции преобразуют и возвращают произвольные числа, стоящие в начале строки, игнорируя любые нецифровые символы, расположенные вслед за числом. Функция parseInt() выполняет только целочисленное преобразование, тогда как parseFloat() может преобразовывать как целые, так и вещественные числа. Если строка начинается с символов «0x» или «0X», функция parseInt() интерпретирует строку как шестнадцатеричное число.1 Например:
В качестве второго аргумента функция parseInt() может принимать основание системы счисления. Корректными значениями являются числа в диапазоне от 2 до 36, например:
Если методы parseInt() и parseFloat() оказываются не в состоянии выполнить преобразование, они возвращают значение NaN:
Last updated