Не по синтаксису. JS не может знать в момент компиляции какая строка будет в keyName, значит, вычисляет на ходу. Более того, мы даже можем написать вот так:
Вывод: это хеш-таблица, так как в момент компиляции не известно ничего.
Js сначала преобразуется в абстрактное синтаксическое дерево, только потом интерпретатор выведет байткод, а потом по нему пройдёт оптимизирующий компилятор (порой даже не 1)
Js сначала преобразуется в абстрактное синтаксическое дерево, только потом интерпретатор выведет байткод, а потом по нему пройдёт оптимизирующий компилятор (порой даже не 1)