Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

var Р = "71": // 71 - это 1 символ с 16-битным кодовым пунктом 0х0Зс0

var е = "е"; // е– это 1 символ с 17-битным кодовым пунктом 0x1d452

р.length // => 1: р содержит единственный 16-битный элемент

е.length // => 2: в кодировке UTF-16 символ е определяется двумя

// 16-битными значениями: "\ud835\udc52"

Различные

строковые методы, имеющиеся в языке JavaScript, манипулируют 16-битными значениями, а не символами. Они не предусматривают возможность специальной интерпретации суррогатных пар, не выполняют нормализацию строк и даже не проверяют, является ли строка последовательностью символов в кодировке UTF-16.

*********************************************

Обратите внимание, что, ограничивая строку одинарными кавычками, необходимо проявлять осторожность в обращении с апострофами, употребляемыми в английском языке для обозначения притяжательного падежа и в сокращениях; как, например, в словах «can’t» и «O’Reilly’s». Поскольку апостроф и одиночная кавычка - это одно и то же, необходимо при помощи символа обратного слэша (\) «экранировать» апострофы, расположенные внутри одиночных кавычек (подробнее об этом - в следующем разделе).

Программы на клиентском JavaScript часто содержат строки HTML-кода, а HTML-код, в свою очередь, часто содержит строки JavaScript-кода. Как и в JavaScript, в языке HTML для ограничения строк применяются либо одинарные, либо двойные кавычки. Поэтому при объединении JavaScript- и HTML-кода есть смысл придерживаться одного «стиля» кавычек для JavaScript, а другого - для HTML. В следующем примере строка «Спасибо» в JavaScript-выражении заключена в одинарные кавычки, а само выражение, в свою очередь, заключено в двойные кавычки как значение HTML-атрибута обработчика событий:

<button onclick="alert('Спасибо')">Щелкни на мнe</button>

3.2.2. Управляющие последовательности в строковых литералах

Символ обратного слэша (

\
) имеет специальное назначение в JavaScript-строках. Вместе с символами, следующими за ним, он обозначает символ, не представимый внутри строки другими способами. Например,
\n
– это управляющая последовательность (escape sequence), обозначающая символ перевода строки.

Другой пример, упомянутый выше, - это последовательность

\'
, обозначающая символ одинарной кавычки. Эта управляющая последовательность необходима для включения символа одинарной кавычки в строковый литерал, заключенный в одинарные кавычки. Теперь становится понятно, почему мы называем эти последовательности управляющими - здесь символ обратного слэша позволяет управлять интерпретацией символа одинарной кавычки. Вместо того чтобы отмечать ею конец строки, мы используем ее как апостроф:

'You\'re right, it can\'t be a quote'

В табл. 3.1 перечислены управляющие последовательности JavaScript и обозначаемые ими символы. Две управляющие последовательности являются обобщенными; они могут применяться для представления любого символа путем указания кода символа из набора Latin-І или Unicode в виде шестнадцатеричного числа. Например, последовательность \хА9 обозначает символ копирайта, который в кодировке Latin-І имеет шестнадцатеричный код А9. Аналогично управляющая последовательность, начинающаяся с символов \и, обозначает произвольный символ Юникода, заданный четырьмя шестнадцатеричными цифрами. Например, \u03c0 обозначает символ л.

Если

символ «\» предшествует любому символу, отличному от приведенных в табл. 3.1, обратный слэш просто игнорируется (хотя будущие версии могут, конечно, определять новые управляющие последовательности). Например, \# - это то же самое, что и #. Наконец, как отмечалось выше, стандарт ECMAScript 5 позволяет добавлять в многострочные строковые литералы символ обратного слэша перед разрывом строки.

Таблица 3.1. Управляющие последовательности JavaScript
Последовательность Представляемый символ
\о Символ NUL (\u0000)
\Ь «Забой» (\u0008)
\t Горизонтальная табуляция (\u0009)
\n Перевод строки (\u000А)
\v Вертикальная табуляция (\u000В)
\f Перевод страницы (\u000С)
\r Возврат каретки (\u000D)
\" Двойная кавычка (\u0022)
\' Одинарная кавычка (\u0027)
\\ Обратный слэш (\u005C)
\хХХ Символ Latin-1, заданный двумя шестнадцатеричными цифрами XX
\uxXXXX Символ Unicode, заданный четырьмя шестнадцатеричными цифрами хххх

3.2.3. Работа со строками

Одной из встроенных возможностей JavaScript является способность конкатенировать строки. Если оператор + применяется к числам, они складываются, а если к строкам - они объединяются, при этом вторая строка добавляется в конец первой. Например:

msg = "Hello, " + "world"; // Получается строка "Hello, world"

greeting = "Добро пожаловать на мою домашнюю страницу," + " " + name;

Для определения длины строки - количества содержащихся в ней 16-битных значений - используется свойство строки

length
. Например, длину строки s можно получить следующим образом:

s.length

Кроме того, в дополнение к свойству

length
строки имеют множество методов (как обычно, более полную информацию ищите в справочном разделе):

var s = "hello, world" // Начнем с того же текста.

s.charAt(0) // => "h": первый символ.

s.charAt(s.length-1) // => "d": последний символ.

s.substring(1,4) // => "ell": 2-й, 3-й и 4-й символы.

s.slice(1,4) // => "ell": то же самое

s.slice(-3) // => "rld": последние 3 символа

s.indexOf("l") // => 2: позиция первого символа l.

Поделиться:
Популярные книги

Дважды одаренный. Том IV

Тарс Элиан
4. Дважды одаренный
Фантастика:
городское фэнтези
альтернативная история
аниме
7.50
рейтинг книги
Дважды одаренный. Том IV

Восточная миссия (сборник)

Бортников Сергей Иванович
Военные приключения
Приключения:
исторические приключения
6.75
рейтинг книги
Восточная миссия (сборник)

О Чехове

Чуковский Корней Иванович
5.00
рейтинг книги
О Чехове

История политических и правовых учений. Шпаргалки

Князева Светлана Александровна
Зачет
Научно-образовательная:
обществознание
юриспруденция
государство и право
шпаргалки
6.00
рейтинг книги
История политических и правовых учений. Шпаргалки

Семиотические исследования

Розин Вадим Маркович
Humanitas
Научно-образовательная:
философия
5.00
рейтинг книги
Семиотические исследования

50 знаменитых больных

Кочемировская Елена
Документальная литература:
биографии и мемуары
6.25
рейтинг книги
50 знаменитых больных

Bash.org.ru 2007.07-09

Bash.org.ru
Юмор:
прочий юмор
5.00
рейтинг книги
Bash.org.ru 2007.07-09

Точка Бифуркации XVI

Смит Дейлор
16. ТБ
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации XVI

Точка Бифуркации XI

Смит Дейлор
11. ТБ
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации XI

Эйнштейн. Его жизнь и его Вселенная

Айзексон Уолтер
Документальная литература:
биографии и мемуары
5.50
рейтинг книги
Эйнштейн. Его жизнь и его Вселенная

Ангел Спартака

Валентинов Андрей
2. Спартак
Фантастика:
альтернативная история
6.50
рейтинг книги
Ангел Спартака

Ксения

Зиминоид
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ксения

Верховный суд СССР

Коллектив авторов
Научно-образовательная:
история
юриспруденция
5.00
рейтинг книги
Верховный суд СССР

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI