2012-06-13 2 views
0

Я думал об объявлении варов в JS, когда возникло сомнение. В чем приоритет одновременной настройки значения двух варов? См:Приоритет левой стороны

var a = 1, 
b = 1; 

С помощью этого кода a будет объявлен до b. Но как насчет этого кода

var a = b = 1; 

Какой из них действительно получает значение? a или b?

ответ

3

Это оценивается как

var a = (b = 1); 

Следовательно, b получает значение в первую очередь.

Обратите внимание, что это отличается от первого фрагмента: если еще не в глобальной области видимости, b станет глобальной переменной (если она не была объявлена ​​ранее). Это приведет к ошибке в строгом режиме.

Формальное описание можно найти в specification.

Смежные вопросы