JavaScript delete关键字

delete

语法:Boolean delete obj.property
主要用于删除对象的属性,删除成功或失败会返回相应布尔值
可以删除非关键字定义的全局变量(var a = 1不能被删除,a= 1可以)
删除对象中不存在的属性会返回true
删除数组元素不会改变数组的长度(索引不变),被删除的索引值变为empty,遍历打印时表现为undefined

delete删除对象属性

    <script>
        var a = [1,2,3,4];
        a.name = "aaa";
        console.log(delete a["name"]);
        console.log(delete a["z"]);//true
        console.log("a:",a);
    </script>

删除原型属性

    <script>
        var fn = new Function();
        fn.prototype.prop = "a1";
        console.log(delete fn.prototype["prop"]);
        console.log(fn.prototype);
    </script>

delete删除数组元素

和splice不同,delete删除数组元素不会改变数组的长度,且会在索引值上留下一个empty。该epmty可以被for、forof访问,但会被forin、forEach、map等跳过、省略
关于js遍历方式的特性可以参考我的另一篇博客:Funny Loop

    <script>
        var a = [1,2,3,4];
        a.name = "aaa";
        delete a[1];
        console.log("a:",a);
        //会遍历到数组的empty索引值,不会遍历索引之外数组对象的属性
        for(var i = 0; i < a.length; i++){
            console.log(i,a[i]);//undefined
            // a = null; //可以被打断
        }
    </script>

原文地址:https://www.cnblogs.com/ltfxy/p/12523633.html

时间: 2024-11-07 01:41:20

JavaScript delete关键字的相关文章

JavaScript 保留关键字

JavaScript 保留关键字 在 JavaScript 中,一些标识符是保留关键字,不能用作变量名或函数名. JavaScript 标准 所有的现代浏览器完全支持 ECMAScript 3(ES3,JavaScript 的第三版,从 1999 年开始). ECMAScript 4(ES4)未通过. ECMAScript 5(ES5,2009 年发布),是 JavaScript 最新的官方版本. 随着时间的推移,我们开始看到,所有的现代浏览器已经完全支持 ES5. JavaScript 保留关

JavaScript的关键字和保留字

关键字: break case catch continue default delete do else finallyfor function if in instanceof new return switch thisthrow try typeof var void while with 保留字: abstract boolean byte char class const debugger doubleenum export extends fimal float goto impl

javascript delete机制学习

想了解delete的机制缘起一个现象,我无法解释,也无法理解. 首先看一下下面这个例子: ? 1 2 var x = 1; delete x; //false 然后我又执行了一次: ? 1 2 y = 2; delete y; //true 看到上面的结果,我比较吃惊,为什么同样是删除,区别怎么这么大呢?进而我想学习和了解一下JS delete的机制. 在MDN(Mozilla Developer Network)上看到下面一个例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13

C++11的default和delete关键字

C11的新特性实在是太多了,这2个关键字关注的人倒是少了很多,其中有一个原因便是编译器支持得太慢了(VS到VS2013才支持上),不过这2个关键字那真是极为有用的,下面我们来看看. [default关键字] 首先我们有一个字符串类: class CString { char* _str; public: //构造函数 CString(const char* pstr) : _str(nullptr) { UpdateString(pstr); } //析构函数 ~CString() { if (

JavaScript加亮关键字

JavaScript加亮关键字,当在文章里头出现这些关键字,就把它加亮显示,文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现,不知道怎样来实现这样的功能.“点睛”的广告代码,很牛B,本想从中找出在FireFox下如何实现findText及pasteHTML类似效果的,我看了大半天,楞是没有看出个所以然来!还是自己慢慢研究吧. IE下有: var range = document.createRange(); FireFox下有:m.hrbfc120.com var rang

new delete 关键字深度解析

1.new调用了构造函数,delete调用了析构函数? 实际上这是一个错误的想法. 2.new确实是对malloc进行了包装,看不到源码,我们只能猜测一下,C++标准库中规定的operator new 操作有没有调用构造函数?我也还不知道.唯一正确就是"operator new typename(parameter) "实际上是分解为三个步骤: 看懂这句话就可以啦.operator new  /*参数1:*/ typename  ( /*"参数2 为:typename调用构造

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=

javascript保留关键字

1.通用保留关键字 break delete function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with default for null try   2.ECMAScript 5 增加保留 class const enum export extends import super  

JS(javascript) delete 详解

javascript 有垃圾回收机制,所以一般情况下不需要程序猿手动delete对象,但是对于一些特殊情况,程序猿也需要使用delete. 1. delete是删除变量,而不是删除对象.如果delete 是删除对象,就会导致"悬挂指针"问题 2. 本质上,delete 删除的是对象的属性,而不是对象. 为了理解delete,需要引入执行上下文(Execution Context)和Activation Object/Variable Object. 在js中,可执行代码的类型有3种,函