首页 理论教育删除运算符的使用方法

删除运算符的使用方法

【摘要】:图4.7.3delete运算符执行delete运算之后,course的name属性被删除。图4.7.4delete不能删除继承的属性一般情况下,delete删除成功返回true,删除失败返回false。在实际应用中基本都会忽略delete的返回值。delete运算符也可以用于删除数组元素,但不会影响其他元素的索引值,不会触发重新排序。图4.7.6delete删除数组元素JavaScript中数组的索引从0开始,将在第9章 JavaScript数组详细介绍。

delete用于删除对象属性、数组元素,但不能删除变量。在浏览器全局作用域下,delete可以删除给window新增的属性。

1.删除普通属性

4.7.3.html使用delete删除对象的属性,如下所示。

动手写4.7.3

执行4.7.3.html,输出删除前后对象的属性值,如下图所示。

图4.7.3 delete运算符

执行delete运算之后,course的name属性被删除。delete可以删除自定义的属性,不能删除从原型链(见第12章原型链)继承的属性,比如course.constructor。

2.删除继承属性无效

4.7.4.html删除继承的属性,虽然删除运算返回值为true,但实际上并没有删除这类属性,如下所示。

动手写4.7.4

执行4.7.4.html,删除某些特殊属性返回true,但实际上并没有删除,如下图所示。

图4.7.4 delete不能删除继承的属性

一般情况下,delete删除成功返回true,删除失败返回false。但是上述示例的运行结果说明,根据delete语句的返回结果判断是否删除成功是不可靠的。在实际应用中基本都会忽略delete的返回值。

3.删除变量无效(www.chuimin.cn)

delete运算符可以删除对象的属性,但是不能删除使用var声明的变量。

4.7.5.html使用delete删除变量,查看是否删除成功,如下所示。

动手写4.7.5

执行4.7.5.html,输出删除前后变量的值到网页,如下图所示。

图4.7.5 delete不能删除变量

4.删除数组元素

数组是特殊的对象,是一种列表结构,用中括号([])表示一个数组,数组的元素采用从0开始的索引作为键值,比如数组['a','b','c']的第0个元素是字符串a,第1个元素是b,以此类推。

delete运算符也可以用于删除数组元素,但不会影响其他元素的索引值,不会触发重新排序。

4.7.6.html删除数组第1个元素,如下所示。

动手写4.7.6

执行4.7.6.html,输出删除前后的数组到网页,如下图所示。

图4.7.6 delete删除数组元素

JavaScript中数组(Array)的索引从0开始,将在第9章 JavaScript数组详细介绍。

删除数组array的第1个元素之后,数组并没有更新所有元素的索引,第1个数组元素缺失,占了一个空位。调用数组的hasOwnProperty(1)函数,发现缺少该索引。