Javascript中delete操作概述

delete 可以删除一些变量,属性。但是并不是全部都可以删除。一些内置的核心客户端属性不能删除,用户通过var声明的变量不能删除,通过function定义的函数和函数参数也是不能删除的。在ECMAScript5严格模式中delete操作数如果是非法的会抛出异常。我们在非严格模式下操作的话,只是简单的返回false。

我们适当做一些实验

> var o = {x:1, y:2}
undefined
// 可以删除它的属性
> delete o.x
true
> typeof o.x
'undefined'
// 但是不能删除变量本身
> delete o
false

// 删除的值不是左值的时候直接返回true,但是不代表它删除成功
> delete 1
true

如果尝试删除非全局变量的话会返回false

> a = 11
11
> var b = 12
undefined
> delete a
true
> delete b
false

上面例子可以看出带var声明的变量是不能够用delete来删除的, 那么函数是怎样呢?


// 对函数进行delete操作
> a = function() {}
[Function]
> delete a
false

// 对函数的参数进行delete操作
> var a = function(x) {return delete x; }
undefined
> a()
false

跟引言说的一样不能够对函数以及函数的参数进行delete操作。

从今天开始Javascript的文章将会根据主题分成多个文件(不同的博客)进行管理。一方面方便自己管理,另一方面缩减了篇幅也方便读者阅读。不然这么长篇达伦谁看的下去啊 _。感谢您的阅读。

Happy Coding!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,513评论 5 28
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,401评论 2 36
  • 忙碌之余,翻翻手机里的照片,发现上次拍的照片还没整理。所以趁着夜色撩人,细雨朦胧,给大家分享一下吧! 一直没有机会...
    丹增索南丶阅读 1,148评论 4 12
  • 我爱上你的时候,你一穷二白,我身无分文。但是我始终相信,我们能靠自己去创造一个明天。
    减肥的女孩阅读 146评论 0 1