Javascript 在声明变量时不使用单词var有哪些优点和缺点?

Javascript 在声明变量时不使用单词var有哪些优点和缺点?,javascript,Javascript,我的意思是浏览器做得很好 我不赞成它,因为使用var使阅读代码变得非常容易 如果我这样做,它会工作吗 a=2; console.log(a); 是的,缺点是它变成了一个“全局”变量(window的属性),如果以后(无意中)使用它,可能会导致问题。如果您有特别大的对象,那么它也可能导致内存问题,除非您显式地管理它们 作为良好的代码实践,通常最好将变量约束到尽可能小的范围内,以获得最佳可读性。它们是不同的。如果不使用var,则变量始终变为全局变量。通常这是个坏主意。如果不使用var关键字,那么变量

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

我不赞成它,因为使用var使阅读代码变得非常容易

如果我这样做,它会工作吗

a=2;
console.log(a);

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


作为良好的代码实践,通常最好将变量约束到尽可能小的范围内,以获得最佳可读性。

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

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


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

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

因此:

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

a = 'abc';
function x() { var a = 'def'; }
这将防止“a”被覆盖(函数内部的“a”是另一个变量)


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

我刚刚发现可以使用
element.remove()删除元素即使未在MDN参考中列出。真不可靠。我再也找不到关于它的任何信息了。比如浏览器支持。
a = 'abc';
function x() { var a = 'def'; }