Выразительный JavaScript | страница 35



. Если вы раньше не программировали, придётся привыкнуть к такой нумерации. Но она имеет давнюю традицию, и всё время, пока её последовательно соблюдают, она прекрасно работает.

Свойства

Мы видели много подозрительных выражений вроде >myString.length (получение длины строки) и >Math.max (получение максимума) в ранних примерах. Эти выражения используют свойства величин. В первом случае, мы получаем доступ к свойству >length (длина) переменной >myString. Во втором — доступ к свойству >max объекта >Math (который является набором функций и переменных, связанных с математикой).

Почти у всех переменных в JavaScript есть свойства. Исключения — >null и >undefined. Если вы попробуете получить доступ к несуществующим свойствам этих не-величин, получите ошибку:

>null.length;

>// → TypeError: Cannot read property 'length' of null

Два основных способа доступа к свойствам – точка и квадратные скобки. >value.x и >value[x] получают доступ к свойству >value – но не обязательно к одному и тому же. Разница в том, как интерпретируется >x. При использовании точки запись после точки должна быть именем существующей переменной, и она таким образом напрямую вызывает свойство по имени. При использовании квадратных скобок выражение в скобках вычисляется для получения имени свойства. >value.x вызывает свойство под именем “x”, а >value[x] вычисляет выражение >x и использует результат в качестве имени свойства.

Если вы знаете, что интересующее вас свойство называется “length”, вы пишете >value.length. Если вы хотите извлечь имя свойства из переменной >i, вы пишете >value[i]. А поскольку свойство может иметь любое имя, для доступа к свойству по имени “2” или “Jon Doe” вам придётся использовать квадратные скобки: >value[2] или >value["John Doe"]. Это необходимо даже когда вы знаете точное имя свойства, потому что ни “2”, ни «John Doe» не являются допустимыми именами переменных, поэтому к ним нельзя обратиться при помощи записи через точку.

Элементы массива хранятся в свойствах. Так как имена этих свойств – числа, и нам часто приходится получать их имена из значений переменных, нужно использовать квадратные скобки для доступа к ним. Свойство >length массива говорит о том, сколько в нём элементов. Имя этого свойства – допустимое имя переменной, и мы его знаем заранее, поэтому обычно мы пишем >array.length, потому, что это проще, чем писать >array["length"].

Методы

Объекты >string и >array содержат, в дополнение к свойству >length