`

JavaScript 的 delete 用法

阅读更多

1、

var o = {};

o.x = new Object();

delete o.x; // 上一行new的Object对象依然存在,只是删掉了o.x这个属性,因此千万不要把delete类似成析构函数了

 

2、

var global = 42;

delete global; // 删除Global.global

 

3、

并不是所有的属性都能被delete。例如,prototype中声明的属性就无法被delete:

function C() { this.x = 42; }
C.prototype.x = 12;

var o = new C();
o.x;     // 42, 构造函数中定义的o.x

delete o.x;
o.x;     // 12,  prototype中定义的o.x,即使再次执行delete o.x也不会被删除

对象的预定义属性也无法删除。

var re = /abc/i;
delete re.ignoreCase;
re.ignoreCase; // true, ignoreCase无法删除

4、

通过var声明的变量和通过function声明的函数,无法被删除。

var x = 36;
delete x;
x;     // 36, x没有被删除

y = 12;
delete y;
y;     // undefined

function foo() { return 42; }
delete foo;
foo();  // 42

但是有一点例外,就是通过 eval 执行的代码中,通过var声明的变量虽然与正常的var声明变量同属于Global对象,但它们能被删除。

eval("var x = 36;");
x;     // 42
delete x;
Technorati 标签: delete
x;     // undefined

但是这也有一点例外,eval的代码中的函数内通过var定义的变量不能被删除。

eval("(function() { var x = 42; delete x; return x; })();");
// 返回 42

* delete是普通运算符,会返回true或false。规则为:当被delete的对象的属性存在并且可被删除时返回false,否则返回true。
这里的一个特点就是,对象属性不存在时也返回true,所以返回值并非完全等同于删除成功与否。
分享到:
评论

相关推荐

    javascript delete 使用示例代码

    javascript delete的一些技巧,主要是从对象中删除一个属性,或从数组中删除一个元素。具体的使用方法,可以参考下面的代码。

    JavaScript使用delete删除数组元素用法示例【数组长度不变】

    本文实例讲述了JavaScript使用delete删除数组用法。分享给大家供大家参考,具体如下: javascript使用delete删除数组中的某些数值后,数组的长度是不变的。 具体代码如下: <!DOCTYPE html> <...

    JavaScript语言参考手册

    这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法 Function 属性 方法 Math 属性 方法 Number 属性 方法 Object 属性 方法 String 属性 方法 RegExp 属性 ...

    【JavaScript源代码】JavaScript CollectGarbage函数案例详解.docx

    JavaScript CollectGarbage函数案例详解  首先看一个内存释放的实例: ... //--> </SCRIPT> CollectGarbage,是IE的一个特有属性,用于释放内存的,使用方法应该是,将该变量或引用对象,设置为null或delet

    【JavaScript源代码】vue 中 get delete 传递数组参数方法.docx

    vue 中 get delete 传递数组参数方法  在前后端交互的时候,有时候需要通过 get 或者 delete 传递一个数组给后台,但是这样直接传递后台无法接收数据,因为在传递的过程中数组参数会被转译,结果如下: 参数:{ ...

    精通JavaScript

    • 1.3.js 1.3.htm使用的外部JavaScript文件 第2章(\第2章) • 2.1.htm Infinity应用 • 2.2.htm NaN与isNaN()的用法 • 2.3.htm Infinity值的用法 • 2.4.htm 转义字符的使用 ...

    slack-delete-files:使用JavaScript从Slack批量删除文件

    使用JavaScript从Slack批量删除文件。 由于Slack的文件存储空间有限,因此无法批量删除文件以释放空间。 () 安装 :warning: 此应用程序依赖于 8+。 $ npm install -g slack-delete-files 除了污染全局安装...

    JavaScript中文参考手册

    这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法 Function 属性 方法 Math 属性 方法 Number 属性 方法 Object 属性 方法 String ...

    javascript学习笔记.docx

    delete可以删除一个属性,它不会影响到属性关联的对象的生存,若该属性不存在会返回true;[]可以以字符串的方式存取对象的属性。 6) typeof函数的返回值:数字——number,字符串——string,布尔值——Boolean,...

    Javascript数组操作高级心得整理

     使用Function类的valueOf()方法和toString()方法 11 (4) 闭包 11 8. 循环语句 11 (1) for循环 12  for循环的使用格式 12  例子 12 (2) while循环 12  While循环的使用格式 12  例子 12 (3) 使用break和...

    微软JavaScript手册

    getUTCMilliseconds 方法 使用全球标准时间(UTC)返回Date 对象的毫秒数。 getUTCMinutes 方法 使用全球标准时间(UTC)返回 Date 对象的分钟数。 getUTCMonth 方法 使用全球标准时间(UTC)返回 Date 对象的月份...

    ra-delete-with-custom-confirm-button:用于带有React-admin的自定义确认对话框的Delete按钮

    ra与自定义确认按钮删除 ... 凭据是登录名/密码用法import DeleteWithCustomConfirmButton from 'ra-delete-with-custom-confirm-button' ;import Delete from '@material-ui/icons/Delete' ;import ErrorOutline from

    精通javascript

    方法与confirm()方法的使用 • 14.3.htm prompt()方法的使用 • 14.4.htm window.open()方法 • 14.5.htm 用链接和按钮实现窗口打开 • 14.6.htm 窗口的打开和关闭 • 14.7....

    JavaScript 5th

    参数中不再允许使用 delete with 语句曾是万错之源,现被禁用 函数中不可以再出现重名参数 对象中不可以再出现重名属性 arguments 和 caller 变量现在是 immutable 变量 访问全局对象会报错 函数扩展 在基本...

    删除Javascript Object中间的key

    介绍了删除Javascript Object中间的key的方法,然后主要详谈了delete的用法,非常的详尽,给小伙伴们参考下

    JavaScript类型系统之Object详解

    而且,Object也是javascript中使用最多的一个类型。虽然Object实例不具备多少功能,但对于在应用程序中存储和传输数据,它们确实是非常理想的选择 创建对象  有两种Object类型的创建方法 [1]Objec

    js-magic:JavaScript魔术方法支持

    JavaScript魔术方法支持。 我们知道ES6带来了Proxy的功能,该功能使我们可以观察对象,而setter和getters是JavaScript的内置支持,但是如果我们每次都需要构建这些东西,那就太麻烦了。 使用此软件包,您可以在类...

    CRUD-Web-Page:使用JavaScript实现基本的CRUD操作

    DELETE 过程:删除 WHERE 子句中的指定行。此存储库包含 4 个名为的子文件夹:- 图片文件夹CSS文件夹JavaScript 文件夹HTML页面图像文件夹包含网页的背景图像。 css 文件夹包含“style.css”文件,其中包含用于样式...

Global site tag (gtag.js) - Google Analytics