-2

我的意思是浏览器做得很好

我不赞成,因为放 var 让阅读代码变得非常容易。

如果我这样做会起作用吗?

a=2;
console.log(a);
4

4 回答 4

3

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

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

于 2013-07-09T23:41:31.960 回答
2

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

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

于 2013-07-09T23:41:10.977 回答
0

它们是不同的。如果您不使用var,该变量将始终变为全局变量。一般是个坏主意。

于 2013-07-09T23:41:17.257 回答
0

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

因此:

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

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

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

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

换句话说,在声明新变量时始终使用 var 并且不会意外覆盖现有变量。

于 2013-07-09T23:45:36.243 回答