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 CSS修改学习第三章 修改样式表
Feb 19 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
js实现日期级联效果
Jan 23 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
javascript实现当前页导航激活的方法
Feb 27 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
js 获取html5的data属性实现方法
Jul 28 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 Javascript
深入浅析vue中cross-env的使用
Sep 12 Javascript
JavaScript onclick事件使用方法详解
May 15 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产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
如何在vue中使用百度地图添加自定义覆盖物(水波纹)
2020/11/03 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
python图书管理系统
2020/04/05 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
详解Python3 pickle模块用法
2019/09/16 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
高三自我鉴定
2013/10/23 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
乔迁之喜答谢词
2015/01/05 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
公司周年庆寄语
2019/06/21 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python