Два наиболее распространенных способа доступа к свойствам в 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"].