我的意思是浏览器做得很好
我不赞成,因为放 var 让阅读代码变得非常容易。
如果我这样做会起作用吗?
a=2;
console.log(a);
如果您不使用var
关键字,那么变量将是全局的。如果您将变量声明为全局变量,则不需要它。
将变量声明为全局变量通常被认为是不好的做法。当你这样做时,它通常被称为“污染全局命名空间”。
是的,缺点是它变成了一个“全局”变量( 的属性window
),如果以后(无意)使用它,这可能会导致问题。如果你有特别大的对象,那么它也可能导致内存问题,除非你明确地管理它们。
作为良好的代码实践,通常最好将变量限制在尽可能紧凑的范围内,以获得最佳可读性。
它们是不同的。如果您不使用var
,该变量将始终变为全局变量。一般是个坏主意。
当不使用 var 时,javascript 将假定该变量位于全局命名空间中。
因此:
a = 'abc';
function x() { a = 'def'; }
将覆盖“a”,即使它是从函数内部运行的。有时这就是你想要的,但有时不是。
a = 'abc';
function x() { var a = 'def'; }
这将防止“a”被覆盖(函数内部的“a”是一个不同的变量)。
换句话说,在声明新变量时始终使用 var 并且不会意外覆盖现有变量。