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 相关文章推荐
使用正则替换变量
May 05 Javascript
jQuery 对Select的操作备忘记录
Jul 04 Javascript
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
详解JavaScript中void语句的使用
Jun 04 Javascript
利用Angularjs和bootstrap实现购物车功能
Aug 31 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
vue点击当前路由高亮小案例
Sep 26 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
Dec 20 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数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
教育专业自荐书范文
2013/12/17 职场文书
护士演讲稿范文
2014/01/05 职场文书
教师队伍管理制度
2014/01/14 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
死亡证明书样本说明
2014/10/18 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python