在声明变量时是否存在不使用word var的缺点?

时间:2013-07-09 23:39:39

标签: javascript

我的意思是浏览器非常正确

我不赞成,因为使用var会使读取代码非常容易。

如果我这样做会有效吗?

a=2;
console.log(a);

4 个答案:

答案 0 :(得分:3)

如果您不使用var关键字,则该变量将为全局变量。如果要将变量声明为全局变量,则不需要它。

将变量声明为全局通常被认为是不好的做法。当您这样做时,它通常被称为“污染全局命名空间”。

答案 1 :(得分:2)

是的,缺点是它变成了一个“全局”变量(window的属性),如果它(无意中)稍后使用,这可能会导致问题。如果您有特别大的对象,那么除非您明确管理它们,否则它可能会导致内存问题。

作为良好的代码实践,通常最好将变量限制在最可能的范围内以获得最佳可读性。

答案 2 :(得分:0)

他们是不同的。如果您不使用var,则变量始终变为全局变量。通常是一个坏主意。

答案 3 :(得分:0)

当不使用var时,javascript将假设变量位于全局名称空间中。

因此:

a = 'abc';
function x() { a = 'def'; }

将覆盖“a”,即使它是从函数内部运行的。有时这就是你想要的,但有时却不是。

a = 'abc';
function x() { var a = 'def'; }

这样可以防止“a”被覆盖(函数内部的“a”是一个不同的变量)。

换句话说,在声明一个新变量时总是使用var,你不会意外地覆盖现有的变量。