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

7.12. Строки как массивы

7.12. Строки как массивы

В ECMAScript 5 (и во многих последних версиях броузеров, включая IE8, появившихся до выхода стандарта ECMAScript 5) строки своим поведением напоминают массивы, доступные только для чтения. Вместо метода charAt() для обращения к отдельным символам можно использовать квадратные скобки:

var s = test;
s.charAt(0) // => "t"
s[1] // => "e"

Оператор typeof для строк все так же возвращает «string», а если строку передать методу Array.isArray(), он вернет false.

Основное преимущество, которое дает поддержка индексирования строк, - это возможность заменить вызов метода charAt() квадратными скобками и получить более краткий, удобочитаемый и, возможно, более эффективный программный код. Однако тот факт, что строки своим поведением напоминают массивы, означает также, что к ним могут применяться универсальные методы массивов. Например:

s = "JavaScript"
Array.prototype.join.call(s, " ") // => "J a v a S с r і p t"
Array.prototype.filter.call(s, // Фильтровать символы строки
  function(x) {
    return x.match(/[~aeiou]/); // Совпадение только с согласными
  }).join("") // => "JvScrpt"

Имейте в виду, что строки являются неизменяемыми значениями, поэтому при работе с ними как с массивами их следует интерпретировать как массивы, доступные только для чтения. Такие методы массивов, как push(), sort(), reverse() и splice(), изменяют исходный массив и не будут работать со строками. Однако попытка изменить строку с помощью метода массива не вызовет ошибку: строка просто не изменится.

Оглавление книги


Генерация: 1.914. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз