javascript的delete运算符知识点总结

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运算符的基础知识点,感谢大家的学习和对我们的支持。

(0)

相关推荐

  • 浅析JavaScript中的delete运算符

    delete运算符将删除运算数所指定的对象的属性.数组元素或变量.如果删除操作成功,它将返回true,如果运算数不能被删除, 它将返回false.并非所有的属性和变量都是可以删除的,某些内部的核心属性和客户端属性不能删除,用var语句声明的用户 定义变量也不能被删除.如果delete使用的运算数是一个不存在的属性,它将返回true(ECMAScript标准规定,当delete运算的 运算数不是属性.数组元素或变量时,它将返回true). var o = {x:1, y: 2};    //定义一

  • Javascript学习笔记 delete运算符

    一.语法 delete后面的表达式必须给出一个属性的引用,比如 var o = {a:1}; delete o.a; //此处o.a是对象o的属性a的引用 只有在with语句里才能使用单独的属性名 复制代码 代码如下: with(o){ delete a; } 二.delete的返回值 delete是普通运算符,会返回true或false.规则为:当被delete的对象的属性存在并且不能被删除时 返回false,否则返回true. 这里的一个特点就是,对象属性不存在时也返回true,所以返回值并

  • javascript 中的 delete及delete运算符

    那么,为什么我们能删除一个对象的属性: var x = { a: 1 }; delete x.a; // true x.a; // undefined 但却不能删除一个变量: var x = 1; delete x; // false; x; // 1 也不能删除一个函数: function x() {}; delete x; // false; typeof x; // "function" 注意:delete 只有当一个属性无法被删除时才返回 false. 每一个属性拥有零至多个如

  • javascript的delete运算符知识点总结

    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; // =

  • JavaScript中instanceof运算符的用法总结

    JavaScript中instanceof运算符是返回一个 Boolean 值,指出对象是否是特定类的一个实例. 使用方法:result = object instanceof class其中result是必选项.任意变量.object是必选项.任意对象表达式.class是必选项.任意已定义的对象类. 说明如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false.

  • JavaScript中逗号运算符介绍及使用示例

    有一道js面试题,题目是这样的:下列代码的执行结果是什么,为什么? 复制代码 代码如下: var i, j, k; for (i=0, j=0; i<10, j<6; i++, j++) {   k = i+j; } document.write(k); 答案是显示10,这道题主要考察JavaScript的逗号运算符. 下面是MDN对逗号运算符的定义: 逗号运算符计算两个操作数(从左至右)并返回第二个操作数的值. 根据这个定义,可以扩展一下: 逗号运算符从左到右计算两个或多个操作数并返回最后一

  • 详解JavaScript逻辑And运算符

    在JavaScript中,逻辑 AND 运算符用双和号(&&)表示 var bTrue = true; var bFalse = false; var bResult = bTrue && bFalse; 下面的真值表描述了逻辑AND运算符的行为: 需要说明的是:逻辑AND运算的运算数可以是任何类型的,不止是Boolean值,如果某个运算数不是原始的Boolean型值,逻辑AND运算并不一定返回Boolean值 逻辑AND运算符的运算行为如下: 如果一个运算数是对象,另一个

  • 详解JavaScript逻辑Not运算符

    在JavaScript 中,逻辑NOT运算符与C和Java中的逻辑 NOT 运算符相同,都由感叹号(!)表示.与逻辑 OR 和逻辑 AND 运算符不同的是,逻辑 NOT 运算符返回的一定是 Boolean 值. 逻辑 NOT 运算符的行为如下: 如果运算数是对象,返回 false 如果运算数是数字 0,返回 true 如果运算数是 0 以外的任何数字,返回 false 如果运算数是 null,返回 true 如果运算数是 NaN,返回 true 如果运算数是 undefined,发生错误 测试脚

  • JavaScript使用delete删除数组元素用法示例【数组长度不变】

    本文实例讲述了JavaScript使用delete删除数组用法.分享给大家供大家参考,具体如下: javascript使用delete删除数组中的某些数值后,数组的长度是不变的. 具体代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript delete</title> </

  • javascript中in运算符用法分析

    本文实例讲述了javascript中in运算符用法.分享给大家供大家参考.具体分析如下: in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的右操作数是一个对象:如果右侧对象拥有一个名为左操作数值的属性名,那么表达式返回true: var point = {x:1,y:1}; "x" in point //true "z" in point //false "toString" in point //true var ary = [

  • JavaScript使用位运算符判断奇数和偶数的方法

    本文实例讲述了JavaScript使用位运算符判断奇数和偶数的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&qu

随机推荐