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实现ListBox左右全选,单选,多选,全请
Nov 07 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
node.js入门实例helloworld详解
Dec 23 Javascript
基于JQuery实现图片轮播效果(焦点图)
Feb 02 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
Feb 28 Javascript
Angular2数据绑定详解
Apr 18 Javascript
简化版的vue-router实现思路详解
Oct 19 Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 Javascript
js的Object.assign用法示例分析
Mar 05 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
react的hooks的用法详解
Oct 12 Javascript
vue如何使用rem适配
Feb 06 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
33道php常见面试题及答案
2015/07/06 PHP
开启PHP的伪静态模式
2015/12/31 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
javascript 函数式编程
2007/08/16 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
node+express+jade制作简单网站指南
2014/11/26 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
python实现挑选出来100以内的质数
2015/03/24 Python
浅析Python中的join()方法的使用
2015/05/19 Python
python3中bytes和string之间的互相转换
2017/02/09 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
2020/02/03 Python
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
毕业生教师求职信
2013/10/20 职场文书
高三历史教学反思
2014/01/09 职场文书
学习方法演讲稿
2014/05/10 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
三八妇女节致辞
2015/07/31 职场文书
子女赡养老人协议书
2016/03/23 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
JS实现简单九宫格抽奖
2022/06/28 Javascript