Эта строка действительно помогла мне: «Всякий раз, когда какое-либо свойство не определено, т.е. отсутствует в объекте, и вы попытаетесь получить к нему доступ, вы получите неопределенное»

аюсь понять разницу между точечной и квадратной скобками. Проходя различные примеры здесь на SO и на некоторых других сайтах, я натолкнулся на эти два простых примера:

var obj = { "abc" : "hello" };
var x = "abc";
var y = obj[x];
console.log(y); //output - hello

var user = {
  name: "John Doe",
  age: 30
};
var key = prompt("Enter the property to modify","name or age");
var value = prompt("Enter new value for " + key);
user[key] = value;
alert("New " + key + ": " + user[key]);

Первый пример возвращает у неопределенным, если в третьей строке я заменяюobj[x] сobj.x, Почему бы и нет"hello"

Но во втором примере выражениеuser[key] можно просто заменить наuser.key без какого-либо аномального поведения (по крайней мере для меня). Теперь это смущает меня, так как я недавно узнал, что если мы хотим получить доступ к свойствам по имени, хранящемуся в переменной, мы используем обозначение квадратной скобкой [].

Ответы на вопрос(2)

Ваш ответ на вопрос