内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
这个问题已经有了一个答案:
“var”是可选的吗?
myObj = 1;
和你一样?
var myObj = 1;
我发现他们都是在我的测试中工作的,我想var
是可选的。是这样吗?
围绕这一主题存在着如此多的混乱,现有的答案中没有一个能清楚、直接地涵盖所有问题。下面是一些带有内联注释的示例。
//this is a declaration var foo; //this is an assignment bar = 3; //this is a declaration and an assignment var dual = 5;
声明设置DontDelete标志。任务不需要。
声明将该变量绑定到当前范围。
赋值但未声明的变量将查找要附加自身的作用域。这意味着它将遍历食物链范围,直到找到一个同名变量。如果没有找到,它将附加到顶级范围(通常称为全局范围)。
function example(){ //is a member of the scope defined by the function example var foo; //this function is also part of the scope of the function example var bar = function(){ foo = 12; // traverses scope and assigns example.foo to 12 } } function something_different(){ foo = 15; // traverses scope and assigns global.foo to 15 }
要清楚地描述正在发生的事情,请注意删除功能分析广泛地介绍了变量实例化和赋值。