学习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方法的更多相关文章

  1. 【译】你应该了解的JavaScript数组方法

    让我们来做一个大胆的声明:for循环通常是无用的,而且还导致代码难以理解.当涉及迭代数组.查找元素.或对其排序或者你想到的任何东西,都可能有一个你可以使用的数组方法. 然而,尽管这些方法很有用,但是其 ...

  2. 松软科技web课堂:JavaScript 数组方法

    JavaScript 数组的力量隐藏在数组方法中. 把数组转换为字符串 JavaScript 方法 toString() 把数组转换为数组值(逗号分隔)的字符串. 实例 var fruits = [& ...

  3. JavaScript - reduce方法,reduceRight方法 (Array)

    JavaScript - reduce方法 (Array) 解释:reduce() 方法接收一个函数作为累加器(accumulator),数组 中的每个值(从左到右)开始合并,最终为一个值. 语法:a ...

  4. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法

    原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...

  5. ASP.NET MVC 5 - 查询Details和Delete方法

    在这部分教程中,接下来我们将讨论自动生成的Details和Delete方法. 查询Details和Delete方法 打开Movie控制器并查看Details方法. public ActionResul ...

  6. JavaScript slice() 方法

    JavaScript slice() 方法  JavaScript Array 对象 实例 在数组中读取元素: var fruits = ["Banana", "Oran ...

  7. JavaScript toLocaleString() 方法

    JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...

  8. 关于JavaScript lastIndexOf() 方法 w3school.com.cn写的不一定全对

    关于JavaScript lastIndexOf() 方法 w3school.com.cn的表述是 定义和用法 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的 ...

  9. javascript一些方法兼容

    javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...

随机推荐

  1. SQLServer 执行计划

    http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html#_label0   http://www.jb51.net/article ...

  2. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

  3. asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码

    用 asp.net获取当前网页地址的一些信息. 设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http:// ...

  4. openstack(liberty): devstack之stack.sh分析

    学习openstack,从devstack入手,是个不错的选择.devstack中,首先需要分析stack.sh都做了些什么! 这里面涉及到了很多shell的基础知识.我就做个简单的梳理,方便后续查阅 ...

  5. Web前端相关

    1)emmet2)prettify3)angularjs4)coffeescript5)bower (nodejs)6)requirejs

  6. SQL SERVER 组内排序

    取出每组的第一个 select *from (select * ,RANK ( ) OVER( PARTITION by org order by reportcode asc) PartionNum ...

  7. SSH_框架整合4--添加员工信息

    SSH_框架整合4--添加员工信息 一. 1 index.jsp:添加:<a href="emp-input">添加员工向信息:Add Employees' Infor ...

  8. (转)用JQuery实现Fix表头表格

    本文转载自:http://www.cnblogs.com/evlon/archive/2009/06/12/1502239.html 我的技术要点: 1.用两个表,其中一个是表头,另一个是表格做表体 ...

  9. ntp.conf:很少有人提及的事

    [你可以到ntp.org下个ntp server的源代码,里面有HTML格式的文档,内容很全面.] [REF: http://doc.ntp.org/] Comprehensive List of C ...

  10. 【VB技巧】VB ListView 控件功能使用详解

    来源:http://lcx.cc/?i=494 ListView控件 在工具箱上击鼠标右键,选择快捷菜单的Components(部件)项,在控件列表中选择Microsoft Windows Commo ...