我的意思是浏览器非常正确
我不赞成,因为使用var会使读取代码非常容易。
如果我这样做会有效吗?
a=2;
console.log(a);
答案 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,你不会意外地覆盖现有的变量。