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学习笔记4 Eval函数
Jan 11 Javascript
javascript oop开发滑动(slide)菜单控件
Aug 25 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
Feb 10 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
jquery取子节点及当前节点属性值的方法
Sep 09 Javascript
JavaScript使用replace函数替换字符串的方法
Apr 06 Javascript
javascript每日必学之循环
Feb 19 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 jQuery
浅谈Vue响应式(数组变异方法)
May 07 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
JavaScript 处理树数据结构的方法示例
Jun 16 Javascript
js制作提示框插件
Dec 24 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
星际实力自我测试
2020/03/04 星际争霸
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
为你总结一些php系统类函数
2015/10/21 PHP
PHP聊天室简单实现方法详解
2018/12/08 PHP
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
div层的移动及性能优化
2010/11/16 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
利用Python如何生成便签图片详解
2018/07/09 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
Python实现最常见加密方式详解
2019/07/13 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
python实现对变位词的判断方法
2020/04/05 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
Linux文件系统类型
2012/09/16 面试题
自我评价的正确写法
2013/09/19 职场文书
大学校园活动策划书
2014/02/04 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书