码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript delete关键字

时间:2020-03-19 13:42:33      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:map   pmt   loop   img   布尔值   fine   log   bool   打印   

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>

技术图片

JavaScript delete关键字

标签:map   pmt   loop   img   布尔值   fine   log   bool   打印   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!