javascript的delete运算符知识点总结


Posted in Javascript onNovember 19, 2019

delete是一元操作符,它用来删除对象属性或者数组元素。就像 赋值、递增、递减运算符一样,delete也是具有副作用的,它是用来做删除操作的,不是用来返回一个值的,例如:

var o = { x: 1, y: 2};     // 定义一个对象
delete o.x;           // 删除一个属性 
"x" in o            // => false:这个属性在对象中不再存在 
var a = [1,2,3];        // 定义一个数组 
delete a[2];          // 删除最后一个数组元素 
2 in a;             // => false:元素2在数组中已经不存在了 
a.length            // => 3:注意,数组长度并没有改变,尽管上一行代码删除

需要注意的是,删除属性或者删除数组元素不仅仅是设置了一个 undefined的值。当删除一个属性时,这个属性将不再存在。读取一个不 存在的属性将返回undefined,但是可以通过in运算符(见4.9.3节)来检测这个属性是否在对象中存在。

delete希望他的操作数是一个左值,如果它不是左值,那么delete将 不进行任何操作同时返回true。否则,delete将试图删除这个指定的左 值。如果删除成功,delete将返回true。然而并不是所有的属性都可删 除,一些内置核心和客户端属性是不能删除的,用户通过var语句声明 的变量不能删除。同样,通过function语句定义的函数和函数参数也不能删除。

在ECMAScript 5严格模式中,如果delete的操作数是非法的,比如 变量、函数或函数参数,delete操作将抛出一个语法错误 (SyntaxError)异常,只有操作数是一个属性访问表达式(见4.4节)的 时候它才会正常工作。在严格模式下,delete删除不可配置的属性(参 照6.7节)时会抛出一个类型错误异常。在非严格模式下,这些delete操 作都不会报错,只是简单地返回false,以表明操作数不能执行删除操作。

这里有一些关于delete运算符的例子:

var o = {x:1, y:2};   //定义一个变量,初始化为对象 
delete o.x;       //删除一个对象属性,返回true 
typeof o.x;       //属性不存在,返回"undefined" 
delete o.x;       //删除不存在的属性,返回true 
delete o;        //不能删除通过var声明的变量,返回false
//在严格模式下,将抛出一个异常 delete 1;        //参数不是一个左值,返回true 
this.x = 1;       //给全局对象定义一个属性,这里没有使用
var delete x;        //试图删除它,在非严格模式下返回true            
//在严格模式下会抛出异常,这时使用"delete this.x"来代替    
x;       //运行时错误,没有定义x

以上就是关于javascript中delete运算符的基础知识点,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
jquery validation插件表单验证的一个例子
Mar 03 Javascript
AngularJS入门教程(一):静态模板
Dec 06 Javascript
javascript递归回溯法解八皇后问题
Apr 22 Javascript
js获取表格的行数和列数的方法
Oct 23 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
May 10 Javascript
JS加载器如何动态加载外部js文件
May 26 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 Javascript
基于ajax和jsonp的原生封装(实例)
Oct 16 Javascript
JavaScript实现快速排序的方法分析
Jan 10 Javascript
iView框架问题整理小结
Oct 16 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 #Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 #Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 #Javascript
vue的三种图片引入方式代码实例
Nov 19 #Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
Nov 19 #Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 #Javascript
VUEX-action可以修改state吗
Nov 19 #Javascript
You might like
风格模板初级不完全修改教程
2006/10/09 PHP
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
生成php程序的php代码
2008/04/07 PHP
浅析is_writable的php实现
2013/06/18 PHP
php字符串函数学习之substr()
2015/03/27 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
详解JavaScript 中的 replace 方法
2016/01/01 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
Python算法应用实战之栈详解
2017/02/04 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
国际语言毕业生求职信
2014/07/08 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
教师节获奖感言
2015/07/31 职场文书
初中班干部工作总结
2015/08/10 职场文书
厉行节约工作总结
2015/08/12 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
工程移交协议书
2016/03/24 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书