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 相关文章推荐
javascript 用函数语句和表达式定义函数的区别详解
Jan 06 Javascript
angularJS中router的使用指南
Feb 09 Javascript
js实现ifram取父窗口URL地址的方法
Feb 09 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
JS简单设置下拉选择框默认值的方法
Aug 20 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
React-router 4 按需加载的实现方式及原理详解
May 25 Javascript
js实现本地时间同步功能
Aug 26 Javascript
Angular 容器部署的方法
Apr 17 Javascript
webpack4 入门最简单的例子介绍
Sep 05 Javascript
vue写h5页面的方法总结
Feb 12 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
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
php实现购物车功能(下)
2016/01/05 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
AngularJS语法详解
2015/01/23 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python中self原理实例分析
2015/04/30 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Python如何调用JS文件中的函数
2019/08/16 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
Python连接mysql方法及常用参数
2020/09/01 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
2021/02/04 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
中班开学寄语
2014/04/04 职场文书
市政管理求职信范文
2014/05/07 职场文书
停水通知
2015/04/16 职场文书
创业计划书之网吧
2019/10/10 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript