javascript delete 使用示例代码


Posted in Javascript onMarch 29, 2010

javascript delete example

var flower={}; 
flower.name="oop"; 
delete flower.name; //true 
alert(flower.name); //undefined

创建一个名为flower的对象

flower具有成员name,值"oop";

delete 操作 删除这个成员

删除成功,已不存在flower.name这个成员
javascript delete example 2

alert(isNaN(5)); //false 
delete isNaN; //true 
alert(isNaN(5)); //undefined

delete 操作符 甚至可以删除全局对象Global的成员
不能删除 var 申明的变量

var flower="monkey"; 
delete flower; //false 
alert(flower); // "monkey"

用 var 申明的变量,delete 后 返回false.并没有删除成功 变量依然存在;
注意:delete仅在删除一个不能删除的成员是,才会返回false
ie下不能删除宿主对象下的变量在ie浏览器下

window.flower="monkey"; 
delete flower; //抛出异常 
alert(flower);

在ff浏览器下
window.flower="monkey"; 
delete flower; //true 
alert(flower) //undefined

可以看到 delete window的成员时,浏览器表现不一致

window是javascript的宿主对象

宿主对象可以是javascript执行环境自己定义的

在ie6-8浏览器中,不能delete window.flower,浏览器会提示你"对象不支持该操作",也就是不能删除window下成员
不能删除用函数名申明的函数

function flower(){} 
delete flower; //true 
alert(flower);//undefined

结果显示 delete 不能删除 用函数名申明的函数
不能删除继承自原型的成员

function flower(){}; 
flower.prototype.name="monkey"; 
var a1=new flower(); 
a1.name="a1_monkey" 
alert(a1.name);//"a1_monkey" 
delete a1.name;//ture 
alert(a1.name);//"monkey"

a1是flower的实例,通过实例来删除原型的和父类的成员是不可行的~

如果一定要删除该属性("这里以name为例"),只能对原型进行操纵
delete a1.constructor.prototype.name;
DontDelete 特性delete 不能删除具有DontDelete特性的成员
那什么是具有DontDelete特性的成员呢
例如var 申明的变量,函数名申明的函数,Function对象的length等极少数几个拥有DontDelete特性
delete 返回值false or true
delete 仅在删除一个不能删除的成员时,才会返回false
而其他情况下,删除如不存在的成员,或删除成功也都会返回ture
也就是说 返回true 并不一定代表删除成功

如 : 执行代码 alert(delete a); // true
a是一个未申明且不存在的变量。 delete 依然返回的是true
不同浏览器器之间的差异

(function(){ 
delete arguments; // false ,而在Mozilla中返回的是true 
typeof arguments; // "object" 
})();

巧妙的利用eval删除var 申明的变量
eval('var flower = 1'); 
alert(window.flower) //1 
alert(flower)// 1 
delete flower; // true 
alert(flower); // "undefined" 
var a=function(){}; 
eval('var a = function(){}'); 
delete a; // true 
alert(a); // "undefined"

eval后的全局变量,变得不具备DontDelete特性,可以用eval删除;
最后补充一条神奇的~睡觉前刚测试
window.flower=1;
delete flower 时对象会不支持此操作
我们可以用 with(window){flower=1}; 然后 delete flower (记住是delete flower,不是delete window.flower ,ie不允许那么做)
这样 window.flower就被删除了 :)

JavaScript delete操作符应用实例

Javascript 相关文章推荐
utf-8编码引起js输出中文乱码的解决办法
Jun 23 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
Sep 20 Javascript
详解webpack+vue-cli项目打包技巧
Jun 17 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
基于Vue.js 2.0实现百度搜索框效果
Dec 28 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
Angular2+如何去除url中的#号详解
Dec 20 Javascript
vue this.reload 方法 配置
Sep 12 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
Jul 03 Javascript
layui表格数据重载
Jul 27 Javascript
vue动态子组件的两种实现方式
Sep 01 Javascript
JavaScript 格式字符串的应用
Mar 29 #Javascript
js DataSet数据源处理代码
Mar 29 #Javascript
javascript 节点遍历函数
Mar 28 #Javascript
javascript 类型判断代码分析
Mar 28 #Javascript
js chrome浏览器判断代码
Mar 28 #Javascript
JavaScript 学习笔记一些小技巧
Mar 28 #Javascript
JavaScript 学习笔记二 字符串拼接
Mar 28 #Javascript
You might like
PHPstorm激活码2020年5月13日亲测有效
2020/09/17 PHP
新手入门常用代码集锦
2007/01/11 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
python自定义类并使用的方法
2015/05/07 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
西安众合通用.net笔试题
2013/03/18 面试题
毕业生就业自荐信
2013/12/04 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
高一新生军训方案
2014/05/12 职场文书
法人委托书范本
2014/09/15 职场文书
出国留学自荐信模板
2015/03/06 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技