有var和没有var的本质区别

我们创建一个变量:

var a = 100;

同时,大家也知道,就是不写var关键字也可以创建。在很多教程和说法中,将没有var 的这个名称称之为“全局变量”。如果我在全局直接写一个var abc = 10,我们也常常视其为全局变量。

但是,有var和没var到底有什么区别呢:

没有加var创建的是window下的一个属性,而且是可以被delete的,而var声明的变量只能被垃圾回收机制回收,不能被delete,这就是它和var声明变量的区别。

var ccc = 22;
delete ccc;
console.log(ccc);//22

接着试一下不加var

sss = 33;
console.log(sss);//33
delete sss;
console.log('ddelete后'+sss);//sss is not defined
—— FROM WNL
原文地址:https://www.cnblogs.com/yinn/p/7503799.html