随笔记录js中var的一些小知识

144 阅读1分钟

var a=1;和a=1;
这个在浏览器中意味着都生成了一个全局变量a,但是调用delete的时候,第一个有var的删不掉,因为delete无法删除变量,第二个可以删掉,a=1;相对于window对象来说是一个window的属性,于是就相当于删掉了window对象的一个属性,是可以删掉的,所以这个意思就是delete无法删除变量,但是可以删除对象的属性,不能删除函数。 至于var的作用域提升,就是类似于这样的情况

function a(){
    console.log(a)
    var a= 2
}
a()

这个编译时候的实际情况是

function a(){
   var a
   console.log(a)
   a= 2
}
a()

这个就是变量作用域提升