隐式全局变量与显示全局变量区别

2021-09-30  本文已影响0人  AAA前端

隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力。

var f1 = 1;
f2 = 2;
(function(){
  f3 = 3
})();

delete f1;
delete f2;
delete f3;

typeof(f1); // number
typeof(f2); // undefined
typeof(f3); // undefined

Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述符。(自有属性指的是直接赋予该对象的属性,不需要从原型链上进行查找的属性)

Object.getOwnPropertyDescriptor(window, 'f1')
{value: 1, writable: true, enumerable: true, configurable: false}

Object.getOwnPropertyDescriptor(window, 'f2')
{value: 2, writable: true, enumerable: true, configurable: true}

可以看到f1的configurable为false,不能被删除;

上一篇 下一篇

猜你喜欢

热点阅读