Свойства против ключей и значений в JavaScript

Я пытаюсь разъяснить свое понимание терминов "свойство" и "ключи" в сравнении с "значениями" в области JavaScript. Прочитав несколько книг по языку и даже поглаживая термины, я все еще не чувствую, что я четко понимаю их точное значение. Итак, предположим, что мы имеем следующее:

var object = {"name" : 5};

Я правильно понимаю следующие термины:

свойство относится к "имени"

ключ относится к "имени"

Значение относится к 5

Меня больше всего беспокоит "свойство": ссылается ли он только на идентификаторы или на всю пару name/value?

Ответ 1

У них нет точного значения, особенно "свойство" неоднозначно.

Термин property (также: attribute, менее распространенный или даже используемый для разных вещей в JS) обычно относится к паре ключ/значение, которая описывает член объекта. Хотя, особенно при использовании с определенным идентификатором (ключом), он часто ссылается на всю комбинацию, он также может обозначать значение этого элемента. Обычно это не означает самого идентификатора.

Когда люди пытаются быть точными, они различают "свойство" (все это, часть объекта), "имя свойства" (строка, используемая как ключ) и "значение свойства" (сохраненные данные).

Ответ 2

Эта тема была действительно запутанной для меня. Различные курсы, которые я сделал, имели разные интерпретации для термина "свойство". После консультации с разными наставниками я пришел к такому выводу. Исправьте меня, если я все еще не прав.

name : 5 => property(key/value pair)
name => key or property name
5 => value or property value

Ответ 3

Свойство - это часть объекта с именем "name" со значением 5. Ключ - это word "name".

Ответ 4

Просто хочу указать - меня это тоже смутило из-за метода hasOwnProperty(), где это возвращает true:

const object1 = new Object();
object1.property1 = 42;
console.log(object1.hasOwnProperty('property1'));