我经常使用这种语法,但我不明白它为何如此有效。
var a = 1, b = a + 1;
console.log(b); // 2
如果您要声明一个 var,在用逗号分隔它们之后,b
已经看到 a
被评估了?这是为什么?
最佳答案
已经defined因此。
一、基本术语的定义:
VariableStatement :
var
VariableDeclarationList;
和:
VariableDeclarationList :
VariableDeclaration
VariableDeclarationList , VariableDeclaration
适用于您的问题的实际定义是:
The production VariableDeclarationList : VariableDeclarationList , VariableDeclaration is evaluated as follows:
Evaluate VariableDeclarationList.
Evaluate VariableDeclaration.
所以在#2 被执行时,#1 已经被评估了,你可以在#2 中使用它的任何效果。
关于javascript - 奇怪但有效的 var 声明语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8533946/