Основы программирования на JavaScript | страница 19



В следующей лекции будут рассмотрены массивы.

Лекция 5. Строки, числа и массивы

Внутренняя работа присущих JavaScript объектов: строк, чисел и массивов.

До сих пор мы рассматривали языковые конструкции JavaScript: операторы if, циклы, функции и т.д. В этой лекции будет рассмотрена внутренняя работа некоторых присущих JavaScript объектов: строк, чисел и массивов.

В JavaScript строка является любым фрагментом текста. Как и многие другие объекты в JavaScript, строки можно определять несколькими различными способами:


var myString = 'Hello, World!';

var myString = new String('Hello, World!');


Первый метод используется наиболее часто. Второй метод применяется редко и только для гарантии, что получаемый объект является строкой. Например:


var n = 5;

var s = new String(n*20);


В этом примере s будет строкой "100". Если просто задать s как n*20, то s будет содержать число 100. Однако поскольку JavaScript является слабо типизированным языком, то эти различия не будут существенно влиять на то, что вы делаете.

Строковые объекты (var n = new String('Hello World')) технически являются в Internet Explorer более медленными при некоторых операциях, чем строковые литералы (var n = 'Hello World'). Однако это поведение совершенно противоположно в других браузерах. В любом браузере различие редко бывает настолько заметно, чтобы об этом беспокоиться.

Единственное важное различие состоит в том, что eval() не работает со строковыми объектами.

Что, если в строке имеется апостроф? Следующий код работать не будет:


var n = 'The dog took it's bone outside';


Легко видеть, что апостроф в "it's " заканчивает строку. Поэтому мы получаем строку "The dog took it ", за которой следует " s bone outside' ". Это продолжение само по себе не является допустимым кодом JavaScript (или правильным грамматически, если на то пошло), поэтому будет получена ошибка.

Здесь можно сделать две вещи. Так как строка определяется с помощью одиночных или двойных кавычек, то можно задать строку с помощью двойных кавычек. Другая возможность состоит в экранировании апострофа. Чтобы экранировать символ, необходимо просто подставить перед ним символ \. Символ \ в этом контексте сообщает JavaScript, что следующий символ необходимо воспринимать в точности так, как он есть, в номинальном значении, а не как специальный символ.


var n = "The dog took it's bone outside";

var n = 'The dog took it\'s bone outside';


Если в строке должен присутствовать символ