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 ...
随机推荐
- JavaScript 札记(数据类型和变量、)
1. 变量名由:字母.下划线.$.数字组成,只可以字母.下划线.$开头. 2.JavaScript区分大小写! 3.命名规范:匈牙利命名法(不论是变量名还是函数名). 4.基本类型(3种):字符串.数 ...
- C语言计算开方
C语言里面有sqrt可以计算开平方根,但似乎想要计算开任意次方根的话却没有一个固定的函数,自己写算法也蛮啰嗦的…… 其实啊,巧妙使用pow函数就可以实现需求. C语言库函数pow的原型声明如下: #i ...
- Python命令行中输入pip提示不是内部或外部命令
WIN764位,Python34 输入命令python -m pip
- java中的分支
条件语句: if-else选择结构: if(条件块){ 代码块1 }else{ 代码块2 } ...
- XSS转码 && struts2 property标签的bug
struts2: <s:property value="name" escape="false"/> EL表达式: jsp 2.0中的 ${todo ...
- DBA常用SQL之DDL生成语句
获取对象定义的包为:dbms_metadata,其中的get_ddl函数是获取对象的函数 GET_DDL函数返回创建对象的原数据的DDL语句,参数说明 .object_type ---需要返回原数据的 ...
- 构建VIM下的C++编程环境
1.VIM配置 Vim强大的配置与功能,其来源基本上就两个地方:Vim插件以及Vim配置文件. Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下.一般情况下 ...
- Linux下nice/renice命令小结
1. nice命令 内核根据进程的nice值决定进程需要多少处理器时间. nice值的取值范围是是: -20到20. 一个具有-20 的 nice 值的进程有很高的优先级. 一个 nice 值为 20 ...
- CentOS7安装Oracle 11g R2 详细过程——零基础
本人linux小白,因项目原因必须要在linux下使用oracle便开始了探索.安装过程中遇到了种种问题与原因,今天整理一下方便后面的可以少走弯路. *注明: 安装过程注意当前错作的用户,执行./ru ...
- 【转】页面跳转Transfer与Redirect的区别你知道吗?
一 前言 关于页面跳转的方式常用的应该就是,链接跳转,js跳转,Server.Tranfser和Response.Redirect 这几种,可是在Tranfser与Redirect之间用哪种更好(本文 ...