博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript var变量删除
阅读量:7022 次
发布时间:2019-06-28

本文共 844 字,大约阅读时间需要 2 分钟。

var有三种声明的情形:

  1.     var声明的全局变量

  2.     var在函数范围内声明的局部变量

  3.     eval中声明的全局变量。

首先,

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

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

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

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

 

复制代码

    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

复制代码

函数不能被delete掉

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

本文转自帅气的头头博客51CTO博客,原文链接http://blog.51cto.com/12902932/1926156如需转载请自行联系原作者

sshpp

你可能感兴趣的文章
Oracle~MyBatis~Java之Number长度对应的不同类型
查看>>
彻底理解ThreadLocal
查看>>
解决new org.jdom2.input.SAXBuilder报错
查看>>
对象导论
查看>>
AAA服务器--宽带网络接入服务器 报文和属性定义
查看>>
ionic环境搭建遇到启动android错误的解决办法
查看>>
关于安卓返回刷新的办法
查看>>
Nginx 安装配置
查看>>
大规模服务器设计与开发实践经验(阅读笔记)
查看>>
jquery validate 动态增加删除验证规则
查看>>
Postgresql分表与优化
查看>>
Java面试记录20151218
查看>>
原始模型模式
查看>>
PostgreSQL一键安装包在XP系统中的中文化问题
查看>>
ant编译打包可运行的jar文件,并包含所依赖的第三方jar包
查看>>
从 Git@OSC 被攻击来看互联网的恶劣环境
查看>>
WEB性能测试工具推荐
查看>>
NAT基本原理
查看>>
《工具 系列》 - 目录
查看>>
【手把手教你全文检索】Apache Lucene初探
查看>>