Одной из встроенных возможностей JavaScript является способность конкатени_ ровать строки. Если оператор + применяется к числам, они складываются, а ес_ ли к строкам, они объединяются, при этом вторая строка добавляется в конец первой. Например:
Для определения длины строки – количества содержащихся в ней символов – используется свойство length. Так, если переменная s содержит строку, то длину последней можно получить следующим образом:
s.length
Для работы со строками существует несколько методов. Так можно получить по_ следний символ в строке s:
46 Глава 3. Типы данных и значения
last_char = s.charAt(s.length – 1)
Чтобы извлечь второй, третий и четвертый символы из строки s, применяется инструкция:
sub = s.substring(1,4);
Определить позицию первого символа «a» в строке s можно следующим образом:
i = s.indexOf('a');
Есть и еще ряд методов, которые можно использовать при работе со строками. Полностью эти методы документированы в описании объекта String и в листин_ гах третьей части книги.
Из предыдущих примеров можно понять, что JavaScript_строки (и, как мы уви_ дим позднее, массивы JavaScript) индексируются, начиная с 0. Другими слова_ ми, порядковый номер первого символа строки равен нулю. Программистам, ра_ ботавшим с C, С++ и Java, должно быть удобно это соглашение, однако програм_ мистам, привыкшим к языкам, в которых нумерация строк и массивов начина_ ется с единицы, придется какое_то время привыкать к этому.
В некоторых реализациях JavaScript отдельные символы могут извлекаться из строк (но не записываться в строки) при обращении к строкам как к массивам, в результате приведенный ранее вызов метода charAt() может быть записан сле_ дующим образом:
last_char = s[s.length – 1];
Однако этот синтаксис не стандартизован в ECMAScript v3, не является перено_ симым и его следует избегать.
Когда мы будем обсуждать объектный тип данных, вы увидите, что свойства
и методы объектов используются так же, как в предыдущих примерах свойства
и методы строк. Это не значит, что строки – это тип объектов. На самом деле строки – это отдельный тип данных JavaScript. Для доступа к их свойствам и ме_ тодам используется объектный синтаксис, но сами они объектами не являются. Почему это так, мы узнаем в конце данной главы.