javascript delete操作符

delete 操作符是从某个对象上移除指定属性,成功删除的时候返回 true ,否则返回 false。

  如果删除的属性在对象上不存在,那么 delete 将不起作用,但仍会返回 true。

var person = {
      age:100,
       name:"yangguo",
   }
   console.log(person.name);//yangguo
   console.log(delete person.name);//true
   console.log(person.name);//undefined
   console.log(delete person.girlfriend);//true 删除一个不存在的属性时也会返回 true

不可配置的属性:当一个属性被设置为不可设置,delete操作将不会有任何效果,并且会返回false。在严格模式下会抛出语法错误。

var person={};
Object.defineProperty(person,"name",{value:"yangguo",configuar:false});
console.log(person);//{name: "yangguo"}
console.log(delete person.name);//false
console.log(person.name);//yangguo

任何使用 var 声明的属性 不能从全局作用域和函数作用域中删除。未使用 var 声明的属性将会被删除

var person = "yangguo";
console.log(delete person);//false
console.log(person);//yangguo

color = "red";
console.log(delete color)//true
console.log(color);//Uncaught ReferenceError: color is not defined

delete 操作符不能删除任何在全局作用域中的函数(无论这个函数是来自于函数声明或函数表达式)

function fun(){};
console.log(delete fun);//false
console.log(fun);//? fun(){}

var func=function(){};
console.log(delete func);//false
console.log(func);//? (){}

原文地址:https://www.cnblogs.com/jyfeng/p/8313033.html

时间: 2024-07-30 15:00:23

javascript delete操作符的相关文章

Javascript的变量与delete操作符

原文:http://charlee.li/javascript-variables-and-delete-operator.html 刚刚看到一篇好文(原文链接), 对Javascript中的delete操作符分析得很透彻.在这里简单地介绍一下内容. 虽然是一个小小的delete操作符,其行为却异常复杂. # Javascript的变量 实际上Javascript中,变量 = 对象属性,这是因为 Javascript 在执行脚本之前 会创建一个Global对象,所有的全局变量都是这个Global

[转]深入详解javascript之delete操作符

最近重新温习JS,对delete操作符一直处于一知半解的状态,偶然发现一篇文章,对此作了非常细致深入的解释,看完有茅塞顿开的感觉,不敢独享,大致翻译如下. 原文地址:http://perfectionkills.com/understanding-delete/ P.S. 作者是PrototypeJS的开发组成员之一 ========分割线======== 在开始之前,先让我们看一段代码 Js代码     >>> var sum = function(a, b) {return a + 

js中的内部属性与delete操作符

本文正式地址:http://www.xiabingbao.com/javascript/2015/08/03/javascript-delete-configurable 在讲解Configurable之前,我们首先来看一道面试题: a = 1; console.log( window.a ); // 1 console.log( delete window.a ); // false console.log( window.a ); // 1 var b = 2; console.log( w

js小知识 delete操作符

说明:delete操作符用于删除对象的某个属性. 语法: delete object.property //删除 对象.属性 delete object['property'] //删除 对象['属性'] 返回值:bool类型,成功删除的时候回返回true,否则返回false. 注意: 如果你删除的属性在对象上不存在,那么delete将不会起作用,但仍会返回true 如果 delete 操作符删除成功,则被删除的属性将从所属的对象上彻底消失.然后,如果该对象的原型链上有一个同名属性,则该对象会从

JavaScript delete用法,属性,特性,执行上下文,激活对象 综合篇

一.问题的提出 我们先来看看下面几段代码,要注意的是,以下代码不要在浏览器的开发者工具(如FireBug.Chrome Developer tool)中运行,原因后面会说明: 为什么我们可以删除对象的属性: var o = { x: 1 }; delete o.x; // true o.x; // undefined 但不以删除像这样声明的变量: var x = 1; delete x; // false x; // 1 也不能删除像这样定义的函数: function x(){} delete

JavaScript in 操作符

JavaScript的in操作符可以用来判断一个属性是否属于一个对象,也可以用来变量一个对象的属性 1. 判断属性属于对象 var mycar = {make: "Honda", model: "Accord", year: 1998}; //注意,属性名必须是字符串形式,因为make不是一个变量 if ( "make" in mycar ){ document.write('true'); } else{ document.write('fal

C++ new delete操作符

//new delete操作符 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; /* 1.new delete 操作符号 都是 c++的关键字 类似于 C语言中的 malloc free 2.定义对象时,使用了new关键字,会为这个对象在堆上分配内存,不使用new 关键字会直接在栈上分配内存 new 关键字可以分配基础类型内存,数组类型内存,对象类型内存 对于基础类型内存和数组类型内存,new de

javascript delete机制学习

想了解delete的机制缘起一个现象,我无法解释,也无法理解. 首先看一下下面这个例子: ? 1 2 var x = 1; delete x; //false 然后我又执行了一次: ? 1 2 y = 2; delete y; //true 看到上面的结果,我比较吃惊,为什么同样是删除,区别怎么这么大呢?进而我想学习和了解一下JS delete的机制. 在MDN(Mozilla Developer Network)上看到下面一个例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13

JavaScript 逗号操作符

让我们从一个有趣的微博开始吧. 末尾的c是优先级最低的逗号操作符.逗号操作符是操作符优先级的最后一行,并且很少有文章记录,它隐藏着它的锋芒.它可能不是JavaScript强势操作符,但是我喜欢它.它简单.优雅并且你应该让它成为你的朋友.所以,我们开始吧--你需要更多了解JavaScript这个害羞英雄. 它是做什么的? 逗号操作符评估它的操作数(从左到右)并返回第二个操作数的值.(MDC) var a = (7, 5); a; //5 var x, y, z; x = (y=1, z=4); x