javascript delete方法
学习delete可以参考下面两个博客,写的都很好,本文大部分参考与以下两个博客
http://www.cnblogs.com/windows7/archive/2010/03/28/1698387.html
http://my.oschina.net/warmcafe/blog/75845
一、javascript delete的作用
delete方法用于删除对象的指定元素(包括变量和函数)
1、新建一个变量flower,并新添一个属性变量name,然后delete该属性
var flower={};
flower.name="oop";
delete flower.name; //true
alert(flower.name); //undefined
2、在当前window变量中新添一个属性aaa和函数bbb,然后delete
aaa=1;
alert(delete aaa); // true 等同于delete window.aaa
alert(typeof aaa); // "undefined" 等同于typeof window.aaa bbb=function(){};
alert(delete bbb); // true 等同于delete window.bbb
alert(typeof bbb); // "undefined" 等同于typeof window.bbb
二、javascript delete一些特性
1、不能删除具有DontDelete特性的元素,那什么是具有DontDelete特性的成员呢
例如var申明的变量,函数名申明的函数,对象的内置参数,函数的参数等;
1)var申明的变量
var x = 1;
alert(delete x); // false
alert(typeof x); // number
2)函数
function x(){}
alert(delete x); // false
alert(typeof x); // "function"
3)对象的内置参数(例如function的length属性,arguments属性)
function f(){
alert(delete arguments); // false
alert(typeof arguments); // "object" alert(delete f.length); // false
alert(typeof f.length); // "number"
}
f();
4)函数的参数
function f(param1){
alert(delete param1); // false
alert(typeof param1); // "number"
}
f(12);
2、可以删除eval中申明的元素
eval('var x = 1');
alert(delete x); //true
alert(typeof x); //undefined eval('function f(){}');
alert(delete f); //true
alert(typeof f); //undefined
三、delete 返回值false or true
delete 仅在删除一个不能删除的成员时,才会返回false
而其他情况下,删除如不存在的成员,或删除成功也都会返回ture
也就是说 返回true 并不一定代表删除成功
alert(delete a); // true
//a是一个未申明且不存在的变量。 delete 依然返回的是true
四、不同浏览器之间的差异
在ie浏览器下
window.flower="monkey";
delete flower; //抛出异常
alert(flower); 在ff浏览器下
window.flower="monkey";
delete flower; //true
alert(flower) //undefined
补充:在ie下可以使用如下方式
with(window){flower=1}; 然后 delete flower (记住是delete flower,不是delete window.flower ,ie不允许那么做)
javascript delete方法的更多相关文章
- 【译】你应该了解的JavaScript数组方法
让我们来做一个大胆的声明:for循环通常是无用的,而且还导致代码难以理解.当涉及迭代数组.查找元素.或对其排序或者你想到的任何东西,都可能有一个你可以使用的数组方法. 然而,尽管这些方法很有用,但是其 ...
- 松软科技web课堂:JavaScript 数组方法
JavaScript 数组的力量隐藏在数组方法中. 把数组转换为字符串 JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串. 实例 var fruits = [& ...
- JavaScript - reduce方法,reduceRight方法 (Array)
JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...
- ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法
原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...
- ASP.NET MVC 5 - 查询Details和Delete方法
在这部分教程中,接下来我们将讨论自动生成的Details和Delete方法. 查询Details和Delete方法 打开Movie控制器并查看Details方法. public ActionResul ...
- JavaScript slice() 方法
JavaScript slice() 方法 JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...
- JavaScript toLocaleString() 方法
JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...
- 关于JavaScript lastIndexOf() 方法 w3school.com.cn写的不一定全对
关于JavaScript lastIndexOf() 方法 w3school.com.cn的表述是 定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的 ...
- javascript一些方法兼容
javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...
随机推荐
- BNUOJ 1006 Primary Arithmetic
Primary Arithmetic 来源:BNUOJ 1006http://www.bnuoj.com/v3/problem_show.php?pid=1006 当你在小学学习算数的时候,老师会教你 ...
- OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】
/*================================================== 单词倒排 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一段英文 ...
- webpack es6支持配置
Install Babel and the presets: npm install --save-dev babel-core babel-preset-es2015 Install babel-l ...
- ExtJs学习笔记之TextField
输入框TextField 一个基本文本框表单项.可以直接代替传统文本输入框, 或者作为许多复杂基本控件的基类({如@link Ext.form.field.TextArea}) 和Ext.form.f ...
- centos6.5 安装iptables
阿里云默认是没有安装iptables 安装 yum install -t iptables yum install iptables-services 检查iptables服务的状态 service ...
- jQuery实现网站图片放大效果
实现效果:当鼠标指向商品图片时,图片会自动放大. <!DOCTYPE html> <html> <head> <meta charset="UTF- ...
- wpa_supplicant移植
移植openssl-0.9.8za cp ../wpa_supplicant-2.5/patches/openssl-0.9.8za-tls-extensions.patch .patch -p1 & ...
- JavaScript中Call()以及Apply()的应用
apply()和call()的真正用武之地是能够扩充函数赖以运行的作用域 三点说明: 1.每个函数都包含两个非继承而来的方法:apply()和call(). 2.他们的用途相同,都是在特定的作用域中调 ...
- [CSS]去除inline-block元素间距的几种方法
当我们使用inline-block 时,会出现空白间距问题. 但这些间距对我们的布局,或兼容性产生影响,我们需要去除它,该怎么办?下面简单介绍几种方法: 1.去掉html元素之间的空格,直接写在一行. ...
- Scala控制抽象
private def filesHere = (new java.io.File(".")).listFiles() def filesEnding(query: String) ...