Два наиболее распространенных способа доступа к свойствам в JavaScript - это точка и квадратные скобки. Оба имеют value.x and value[x]
доступ к свойству по значению, но не обязательно к одному и тому же свойству. Разница в том, как х интерпретируется. При использовании точки, часть после точки должна быть допустимым именем переменной, и она прямо называет свойство. При использовании квадратных скобок выражение между скобками вычисляется для получения имени свойства. В то время как value.x извлекает свойство значения с именем «x», value [x] пытается вычислить выражение x и использует результат в качестве имени свойства.
Поэтому, если вы знаете, что интересующее вас свойство называется «длина», вы говорите value.length
. Если вы хотите извлечь свойство, названное значением, содержащимся в переменной i
, вы говорите value[i]
. И потому , что имена свойств может быть любой строкой, если вы хотите получить доступ к свойству с именем “2”
или “John Doe”
, вы должны использовать квадратные скобки: value[2] or value["John Doe"]
. Это так, даже если вы заранее знаете точное имя свойства, потому что ни одно из них не “2” nor “John Doe”
является допустимым именем переменной и поэтому недоступно через точечную запись.
В случае массивов
Элементы в массиве хранятся в свойствах. Поскольку имена этих свойств являются числами, и нам часто нужно получать их имя из переменной, мы должны использовать синтаксис скобок для доступа к ним. Свойство length массива сообщает нам, сколько элементов в нем содержится. Это имя свойства является допустимым именем переменной, и мы знаем его имя заранее, поэтому, чтобы найти длину массива, вы обычно пишете, array.length
потому что это легче написать, чем array["length"]
.