2021-04-05

这篇博客探讨了JavaScript中全局变量与在window对象上定义属性的差异,包括删除行为、未声明变量的访问以及自执行函数中的变量暴露。全局变量无法通过delete操作符删除,而window属性上的变量可以。此外,通过查询window对象可以检查未声明变量的存在。对于需要在函数外部访问的变量,可以直接在window对象上定义。
摘要由CSDN通过智能技术生成

着一篇我们来了解一下定义全局变量与在 window 对象上直接定义属性差别。

1、全局变量不能通过 delete 操作符删除;而 window 属性上定义的变量可以通过 delete 删除

var num=123;
window.str=“string”;
delete num;
delete str;
console.log(num); //123

console.log(str); //str is not defined
//全局变量不能通过 delete 删除,因为通过 var 定义全局变量会有一个名为 [Configurable] 的属性,默认值为 false,所以这样定义的属性不可以通过 delete 操作符删除
2、访问未声明的变量会抛出错误,但是通过查询 window 对象,可以知道某个可能未声明的变量是否存在。
var newValue=oldValue; // 报错:oldValue is not defined
var newValue=window.oldValue; // 不会报错
console.log(newValue); // undefined
3、有些自执行函数里面的变量,想要外部也访问到的话,在 window 对象上直接定义属性。
以上这几个点都是平常容易混淆或者忘记掉的,希望大家看了这个以后在面试或者工作的时候能帮助你们

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值