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 相关文章推荐
js 表格隔行颜色
Dec 02 Javascript
jQuery之按钮组件的深入解析
Jun 19 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
May 20 Javascript
Javascript中浮点数相乘的一个解决方法
Jun 03 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
Feb 23 Javascript
jquery实现动静态条形统计图
Aug 17 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
Jan 13 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
vue打包时去掉所有的console.log
Apr 10 Vue.js
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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
PHP判断网络文件是否存在的方法
2015/03/12 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
python解析文件示例
2014/01/23 Python
python数据结构之二叉树的建立实例
2014/04/29 Python
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
python删除特定文件的方法
2015/07/30 Python
python语言基本语句用法总结
2019/06/11 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
万年牢教学反思
2014/02/15 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
工地材料员岗位职责
2015/04/11 职场文书
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers