Символ обратного слэша (\) имеет специальное назначение в JavaScript_строках. Вместе с символами, следующими за ним, он обозначает символ, не представи_ мый внутри строки другими способами. Например, \n – это управляющая после' довательность (escape sequence), обозначающая символ перевода строки.1
Другой пример, упомянутый в предыдущем разделе, – это последовательность \', обозначающая символ одинарной кавычки. Эта управляющая последова_ тельность необходима для включения символа одинарной кавычки в строковый литерал, заключенный в одинарные кавычки. Теперь становится понятно, поче_ му мы называем эти последовательности управляющими – здесь символ обрат_ ного слэша позволяет управлять интерпретацией символа одинарной кавычки. Вместо того чтобы отмечать ею конец строки, мы используем ее как апостроф:
'You\'re right, it can\'t be a quote'
В табл. 3.2 перечислены управляющие последовательности и обозначаемые ими символы. Две управляющие последовательности являются обобщенными; они могут применяться для представления любого символа путем указания кода символа из набора Latin_1 или Unicode в виде шестнадцатеричного числа. Напри_ мер, последовательность \xA9 обозначает символ копирайта, который в кодиров_ ке Latin_1 имеет шестнадцатеричный код A9. Аналогично управляющая последо_ вательность, начинающаяся с символов \u, обозначает произвольный Unicode_ символ, заданный четырьмя шестнадцатеричными цифрами. Например, \u03c0 обозначает символ π . Следует отметить, что управляющие последовательности для обозначения Unicode_символов требуются по стандарту ECMAScript v1, но обычно не поддерживаются в реализациях, вышедших ранее чем JavaScript 1.3. Некоторые реализации JavaScript также допускают задание символа Latin_1 тремя восьмеричными символами, указанными после символа обратного слэша,
1 Тем, кто программирует на C, C++ и Java, эта и другие управляющие последова_ тельности JavaScript уже знакомы.
3.2. Строки
но такие управляющие последовательности не поддерживаются в стандарте ECMAScript v3 и не должны использоваться.
Символ Latin_1, заданный двумя шестнадцатеричными цифрами XX
\uxXXXX
Unicode_символ, заданный четырьмя шестнадцатеричными цифрами XXXX
\XXX
Символ из набора Latin_1, заданный тремя восьмеричными цифрами
XXX, с кодом в диапазоне от 1 до 377. Не поддерживается ECMAScript v3;
такой способ записи не должен использоваться
И наконец, следует заметить, что символ обратного слэша не может предшество_ вать символу перевода строки для продолжения строки (или другой JavaScript_ лексемы) на следующей строке или включения буквального перевода строки в строковый литерал. Если символ «\» предшествует любому символу, отлично_ му от приведенных в табл. 3.2, обратный слэш просто игнорируется (хотя буду_ щие версии могут, конечно, определять новые управляющие последовательно_ сти). Например, \# – это то же самое, что и #.