1、
var o = {};
o.x = new Object();
delete o.x; // 上一行new的Object对象依然存在,只是删掉了o.x这个属性,因此千万不要把delete类似成析构函数了
2、
var global = 42;
delete global; // 删除Global.global
3、
并不是所有的属性都能被delete。例如,prototype中声明的属性就无法被delete:
function C() { this.x = 42; }
C.prototype.x = 12;
var o = new C();
o.x; // 42, 构造函数中定义的o.x
delete o.x;
o.x; // 12, prototype中定义的o.x,即使再次执行delete o.x也不会被删除
对象的预定义属性也无法删除。
var re = /abc/i;
delete re.ignoreCase;
re.ignoreCase; // true, ignoreCase无法删除
4、
通过var声明的变量和通过function声明的函数,无法被删除。
var x = 36;
delete x;
x; // 36, x没有被删除
y = 12;
delete y;
y; // undefined
function foo() { return 42; }
delete foo;
foo(); // 42
但是有一点例外,就是通过 eval 执行的代码中,通过var声明的变量虽然与正常的var声明变量同属于Global对象,但它们能被删除。
eval("var x = 36;");
x; // 42
delete x;
x; // undefined
但是这也有一点例外,eval的代码中的函数内通过var定义的变量不能被删除。
eval("(function() { var x = 42; delete x; return x; })();");
// 返回 42
* delete是普通运算符,会返回true或false。规则为:当被delete的对象的属性存在并且可被删除时返回false,否则返回true。
这里的一个特点就是,对象属性不存在时也返回true,所以返回值并非完全等同于删除成功与否。
分享到:
相关推荐
在实际开发中,我们常常会遇到与服务器交互的情况,这时就需要使用到`JSON.stringify()`方法将JavaScript对象转换为JSON字符串,以便发送给服务器;而`JSON.parse()`则用于将接收到的JSON字符串转换回JavaScript对象...
为了检测一个对象是否在其自身(而不是原型链)上拥有某个属性,可以使用`hasOwnProperty`方法: ```javascript if (a.hasOwnProperty('testMe')) { // 代码块 } ``` `hasOwnProperty`会返回`true`只有当属性是直接...
在JavaScript和Vue.js开发中,与后端进行数据交互时,我们经常需要使用HTTP的GET和DELETE方法传递参数。然而,对于数组类型的参数,浏览器在处理URL时会将其转化为键值对的形式,如`name[]=1&name[]=2&name[]=3`,这...
JavaScript中的`delete`操作符主要用于从对象中删除属性,或者在某些旧的浏览器环境中尝试从数组中...在处理对象属性时,`delete`是一个有用的工具,但在数组管理或变量管理方面,可能需要其他方法来达到期望的效果。
在JavaScript中,`delete`操作符用于删除对象的属性或者变量。然而,并非所有属性或变量都可以使用`delete`操作符删除。以下是关于JavaScript中`delete`操作符不能删除的对象的详细分析: 首先,理解`delete`的工作...
但在ECMAScript5之前的版本中,使用关键字作为属性名(如`delete`)会导致`SyntaxError`,这是因为JavaScript解析器将关键字误识别为其自身的语义作用,而非属性名称。 《JavaScript的秘密花园》不仅是一份详尽的...
在JavaScript中,`delete`运算符常常引起误解。在JavaScript面向对象编程指南中,作者指出一个关于`delete`操作的常见误区,通过一个代码...因此,理解`delete`的限制和正确用法对于编写健壮的JavaScript代码至关重要。
JavaScript是一种广泛应用于网页和网络应用...这些知识点涵盖了JavaScript的基础语法,包括变量声明、数据类型、函数、注释、数组、事件处理以及对象和方法的使用。了解和掌握这些概念对于编写JavaScript代码至关重要。
例如,试图删除对象原型链上的属性或JavaScript引擎的内置方法,`delete`操作通常会失败: ```javascript delete Array.prototype.push; // 返回false,无法删除 ``` 最后,如果`delete`操作的运算数不是一个属性...
在JavaScript中,如果需要真正地从数组中移除元素并更新数组长度,可以使用以下方法: 1. **`splice()` 方法**:`splice(index, count)`可以从数组中删除指定数量的元素,从给定的索引开始。例如,`a.splice(i, 1)`...
若要理解delete操作符的正确使用方法及其限制,首先需要对变量实例化、属性特性、可执行代码类型、执行上下文以及变量对象和激活对象有所了解。 首先,关于delete操作符的使用,它通常用于删除对象的属性。比如,当...
让我们深入探讨`delete`关键字的使用及其在ActionScript中的工作原理。 首先,`delete`操作符可以用来删除对象的属性。当你创建一个对象并为其添加一些属性后,如果不再需要这些属性,可以使用`delete`来清除它们。...
通过HTTP方法(GET, POST, PUT, DELETE等),前端可以通过这些API接口与后端交互,执行对应的操作,如查询(GET)、创建(POST)、更新(PUT)和删除(DELETE)数据库中的数据。 **3. JSON格式** 在前后端交互中,...
这些对象同时在客户端和服务器端的 JavaScript 中使用。 Array 属性 方法 Boolean 属性 方法 Date 属性 方法 Function 属性 方法 Math 属性 方法 Number 属性 方法 Object 属性 方法 String 属性 方法 RegExp 属性 ...
在高级使用中,闭包可以用于实现模块化、数据封装、方法扩展和重载、以及创建私有变量。下面将详细解释这些概念,并结合给出的实例进行解析。 1. **模块化**: 通过闭包,我们可以创建一个独立的命名空间,避免...
- **使用`delete`操作符**:删除属性唯一有效的方法是使用`delete`操作符。简单地将属性值设为`undefined`或`null`并不会真正删除属性: ```javascript var obj = { bar: 1, foo: 2, baz: 3 }; obj.bar = ...
2. RESTful API:使用HTTP协议中的GET、POST、PUT、DELETE等方法,C#服务器提供RESTful接口,JavaScript通过Ajax请求调用这些接口,实现数据的增删改查。 二、Ajax请求 1. XMLHttpRequest (XHR):JavaScript中使用...