声明变量之间的差异
Difference between declaring variable
声明变量的方式有什么区别?
a = 5;
和
var a = 5;
是否也与范围界定有关?
var a
将创建局部变量。另一个将创建和/或设置全局变量。
大多数时候,最好创建局部变量,除非绝对需要创建全局变量。
a=5将声明来自任何范围的全局变量。var a=5将在声明的范围内声明一个变量。
a = 5; //global variable
var b = 6; // global variable
function foo(){
var c = 7; //local variable
d = 9; //global variable
}
var
关键字用于声明变量,并且该变量是在当前作用域中创建的。
如果为一个尚不存在的变量赋值,则该变量将在全局范围内隐式创建。
a = 5;
这将设置一个变量,如果变量尚未声明,那么它将在全局范围内创建(这可能是您不想要的(。
var a = 5;
这将创建并设置一个变量。如果在函数内部,则变量将作为函数范围内的局部变量创建,否则将全局创建。
同样值得注意的是,语句var a=5将被提升到函数的顶部。即
function() {
doSomestuff();
a = 4;
var a = 5;
doOtherStuff();
}
实际上变成
function() {
var a = 5;
doSomestuff();
a = 4;
doOtherStuff();
}
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var了解更多信息。
同样值得注意的是,如果使用严格模式,则不能声明只有a=5的变量。您必须使用var关键字。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode
这是值得做的,因为它会把你无法察觉的错误变成明显的错误。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么是&&在没有if的行中的变量之间
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 在Knockoutjs中的ViewModels之间共享变量状态
- 在控制器之间传递变量的最佳方式
- 通过变量在两个数字之间切换
- 在函数之间传递javascript变量
- 在aspx页面c#之间传递/引用/发送变量/会话状态
- 在两个浏览器选项卡之间共享变量范围
- Javascript创建函数,以便在其他函数之间共享变量
- 关于node.js/javascript在文件之间共享变量
- AngularJS:如何在控制器之间传递变量
- 使用 AngularJS 在控制器之间传递变量
- 创建一个变量并在页面之间移动时“存储它”,jQuery
- 在 AngularJS 和非 AngularJS 弹出窗口之间共享变量
- 我需要在jQuery函数和AJAX之间获取一个变量
- 在Ember.js中的方法之间共享变量上下文
- 控制器之间变量名和数据的奇怪行为