这里的变量声明有什么区别?

时间:2009-12-11 17:47:54

标签: javascript variable-declaration

我正在接受项目的维护和阅读代码:
我看到两种变量声明方法。有人可以解释第一行和第二行之间的区别是什么意思吗?

对我而言,我正在阅读javascript中的var关键字是可选的。在第一行中,他们声明了两个新变量并初始化它们。在第二行中,他们声明了两个新的varialbes,但没有初始化它们。我应该从中获取更多吗?

aURL = ""; msgNb = 1;
var mode, param, counter;

3 个答案:

答案 0 :(得分:9)

除非所有这些变量都在函数内部,否则它们都是全局变量,前两个是我猜的因为它们之前被声明的分配,否则它可能缩短为

var aURL = '', 
    msgNb = 1, 
    mode, 
    param, 
    counter;

默认情况下,未分配的值具有未定义的值。

您应始终使用var关键字将变量保持在相同的函数范围内,而不是强制它变为隐式全局变量,否则您可能遇到重复变量命名和赋值的问题。

答案 1 :(得分:3)

如果您没有使用var,那么您正在使用(或创建)来自“父”范围的变量,如果它在任何地方找不到本地变量,那么一直到全局变量范围。

答案 2 :(得分:3)

这不是一个“jquery”问题,而是一个JavaScript问题。没有“var”关键字的变量具有全局范围,即,它可以从所有方法,对象等中看到...... var仅在其特定范围内可见。