Два наиболее распространенных способа доступа к свойствам в JavaScript - это точка и квадратные скобки.Оба value.x and value[x]
имеют доступ к свойству по значению, но не обязательно к одному и тому же свойству. Разница в том, как интерпретируется х.При использовании точки, часть после точки должна быть допустимым именем переменной, и она прямо называет свойство.При использовании квадратных скобок выражение между скобками вычисляется для получения имени свойства.В то время как value.x извлекает свойство значения с именем «x», значение [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"]
.