Javascript var变量删除原理及实现


Posted in Javascript onAugust 26, 2020

var有三种声明的情形:

  • var声明的全局变量
  • var在函数范围内声明的局部变量
  • eval中声明的全局变量。

首先,

1、2种情形var声明的变量是无法删除的。

尽管var声明的全局变量是属于window对象的属性(在浏览器中),但依然是无法删除的,因为这种属性的configurable=false,因此不能delete掉。

局部变量就更不用说了,连var变量依附的对象都不知道在哪里,肯定无法删除。

而eval('vara=1')看似和直接var是一样的效果(当然是在全局作用执行eval),执行完也会在window对象上创建一个a属性,但是这个属性的configurable=true,因此可以删除。

<script type="text/javascript">
  var a = 1;
  console.log(Object.getOwnPropertyDescriptor(window, 'a'));   //false
  aa=1;
  console.log(Object.getOwnPropertyDescriptor(window, 'aa'));  //true
  with({}) {
    var b = 1;
    console.log(Object.getOwnPropertyDescriptor(window, 'b')); //false
    console.log(delete b);
  }
  eval('var c = 1');
  console.log(Object.getOwnPropertyDescriptor(window, 'c'));   //true
</script>

函数不能被delete掉

Javascript var变量删除原理及实现

局部作用域中的函数也不能被delete掉

Javascript var变量删除原理及实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 高效运行代码分析
Mar 18 Javascript
jquery select下拉框操作的一些说明
Apr 02 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
Feb 04 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
May 19 Javascript
JavaScript实现移动端滑动选择日期功能
Jun 21 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
详解jquery easyui之datagrid使用参考
Dec 05 Javascript
angularJs的ng-class切换class
Jun 23 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
vue中移动端调取本地的复制的文本方式
Jul 18 Javascript
js实现车辆管理系统
Aug 26 #Javascript
js实现飞机大战小游戏
Aug 26 #Javascript
JS面向对象实现飞机大战
Aug 26 #Javascript
JavaScript Image对象实现原理实例解析
Aug 26 #Javascript
js实现飞机大战游戏
Aug 26 #Javascript
JS+Canvas实现五子棋游戏
Aug 26 #Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
Aug 26 #Javascript
You might like
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
基于empty函数的输出详解
2013/06/17 PHP
php检测useragent版本示例
2014/03/24 PHP
php生成gif动画的方法
2015/11/05 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
JS 去除Array中的null值示例代码
2013/11/20 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
简单介绍Python中的round()方法
2015/05/15 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
2016/11/19 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
python Pygame的具体使用讲解
2017/11/03 Python
python使用Matplotlib画饼图
2018/09/25 Python
python利用selenium进行浏览器爬虫
2019/04/25 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
jupyter notebook清除输出方式
2020/04/10 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
python dict如何定义
2020/09/02 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
煤矿班组长的职责
2013/12/25 职场文书
人力管理专业毕业生求职信
2014/02/27 职场文书
辩论赛主持词
2014/03/18 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
开会通知短信大全
2015/04/20 职场文书
党员转正申请报告
2015/05/15 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
Python turtle实现贪吃蛇游戏
2021/06/18 Python