Я новичок в JavaScript, но я знаком с Python.Я пытаюсь выяснить разницу между словарем в Python и объектом в JS.
Насколько я знаю, ключ в словаре в Python должен быть определен заранее, но он может быть неопределеннымв объекте в JS.Однако меня смущают эти случаи:
var n = 'name';
var n2 = n;
var person = {n: 'mike'};
person.n # 'mike'
person['n'] # 'mike'
person[n2] # undefined
person.n2 # undefined
person['name'] # undefined
person.'name' # undefined
Я настолько растерялся, что почему эти три переменные n
, n2
и name
не равны, потому что по сравнению с этим в Python:
n = 'name'
n2 = n
person = {n:'mike'}
person[n] # 'mike'
person[n2] # 'mike'
person['name'] # 'mike'
Я полагаю, это может быть связано с тем, что в Python n
и n2
оба указывают на уникальный строковый объект 'name'
, поэтому они одинаковы.Но может ли кто-нибудь объяснить мне механизм, заложенный в JS?