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 相关文章推荐
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
Aug 26 Javascript
javascript检测flash插件是否被禁用的方法
Jan 14 Javascript
js改变style样式和css样式的简单实例
Jun 28 Javascript
JS制作适用于手机和电脑的通知信息效果
Oct 28 Javascript
Angular2数据绑定详解
Apr 18 Javascript
vue实现百度搜索下拉提示功能实例
Jun 14 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
Sep 21 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
JavaScript canvas仿代码流瀑布
Feb 10 Javascript
jQuery插件实现图片轮播效果
Oct 19 jQuery
Javascript 模拟mvc实现点餐程序案例详解
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
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
JS打开新窗口的2种方式
2013/04/18 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
利用JS测试目标网站的打开响应速度
2017/12/01 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
Python简单获取自身外网IP的方法
2016/09/18 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
Django视图扩展类知识点详解
2019/10/25 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
学院书画协会部门职责
2013/11/28 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
文化产业实施方案
2014/06/07 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
护理工作个人总结
2015/03/03 职场文书
学生通报表扬范文
2015/05/04 职场文书
李强感恩观后感
2015/06/17 职场文书
寒假生活随笔
2015/08/15 职场文书
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers