var定义的全局变量与window的属性的区别

https://blog.csdn.net/2201_75705263/article/details/129916155

  • 关系

    • 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员

    • 全局变量是 window 对象的属性。

    • 全局函数是 window 对象的方法

  • 区别

    • 1. 全局变量不能通过delete删除delete a;而window属性上定义的变量可以通过delete删除 delete widnow.a

      • 全局变量a之所以不能通过delete删除;是因为通过var语句添加的全局变量有一个configurable属性;其默认值为false不可配置;所以这样定义的属性不可以通过delete删除

    • 2. 尝试访问未声明的变量会报错;xxx is not defined。 但是通过查询window查询window.a;可以知道某个可能未声明的变量是否存在;不会报错;只会显示undefined。

      • 预解析的存在

    • 3. 在函数中使用var定义的变量是局部变量。 有时想要在外部也访问到函数里面的变量就需要定义window对象属性

posted @ 2024-03-27 13:59  王卫朋  阅读(25)  评论(0编辑  收藏  举报