JS的 delete操作符 删除对象属性

JS如何删除对象中的某一属性

var obj={
    name: ‘zhagnsan‘,
    age: 19
}
delete obj.name //true
typeof obj.name //undefined
  • 通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔
  • 如果你试图删除的属性不存在,那么delete将不会起任何作用,但仍会返回true
  • 如果对象的原型链上有一个与待删除属性同名的属性,那么删除属性之后,对象会使用原型链上的那个属性(也就是说,delete操作只会在自身的属性上起作用)
  • 当一个属性被设置为不可设置,delete操作将不会有任何效果,并且会返回false。

其他场景

1.变量

var name =‘zs‘  //已声明的变量
delete name  //false
console.log(typeof name)  //String

age = 19  //未声明的变量
delete age     //true
typeof age //undefined

this.val = ‘fds‘  //window下的变量
delete this.val      //true
console.log(typeof this.val)  //undefined

已声明的变量不可删除, 未声明的变量可以删除

2.函数

var fn = function(){}  //已声明的函数
delete fn    //false
console.log(typeof fn)  //function

fn = function(){}  //未声明的函数
delete fn    //true
console.log(typeof fn)  //undefined

3.数组

var arr = [‘1‘,‘2‘,‘3‘]  ///已声明的数组
delete arr    //false
console.log(typeof arr)  //object

arr = [‘1‘,‘2‘,‘3‘]  //未声明的数组
delete arr   //true
console.log(typeof arr)   //undefined

var arr = [‘1‘,‘2‘,‘3‘]   //已声明的数组
delete arr[1]  //true
console.log(arr)   //[‘1‘,‘empty‘,‘3‘] 

4.对象

var person = {
  height: 180,
  long: 180,
  weight: 180,
  hobby: {
    ball: ‘good‘,
    music: ‘nice‘
  }
}
delete person  ///false
console.log(typeof person)   //object

var person = {
  height: 180,
  long: 180,
  weight: 180,
  hobby: {
    ball: ‘good‘,
    music: ‘nice‘
  }
}
delete person.hobby  ///true
console.log(typeof person.hobby)  //undefined

已声明的对象不可删除, 对象中的对象属性可以删除

原文地址:https://www.cnblogs.com/Joe-and-Joan/p/11691829.html

时间: 2024-08-05 23:03:57

JS的 delete操作符 删除对象属性的相关文章

JS delete 用法(删除对象属性及变量)

1,对象属性删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete obj.name; console.log(obj.name); //undefined 2,变量删除 var name = 'lily'; delete name; console.log(name); //lily 直接用delelte删除不了变量 3,删除不了原型链中的变量 fun.proto

JavaScript 删除某个数组中指定的对象和删除对象属性

Javascript: 删除指定对象:使用过程中只适合删除对象,如果数组中添加的是类型Function的话是删除不了的. function removeObjWithArr(_arr,_obj) { var length = _arr.length; for(var i = 0; i < length; i++) { if(isObjectValueEqual(_arr[i],_obj)) { if(i == 0) { _arr.shift(); //删除并返回数组的第一个元素 return;

JS两种方式访问对象属性

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <p> 有两种方式可以访问对象属性: </p> <p> 你可以使用 .property 或 ["property"]. </p>

深入了解JS中通过[]和.获取对象属性的区别

一般来说,'.'运算符和[]可以相互替代,比如 1 let obj = { 2 name : 'sena' 3 }; 4 5 console.log(obj.name) // 'sena' 6 console.log(obj[name]) // 'sena' 在这之上,我们需要了解关于他们的一些限制 .运算符:  右侧必须是一个属性名称命名的简单标识符 [] :  右侧必须是一个计算结果为字符串的表达式 先复习一下JS中的标识符: /* 标识符 - 在JS中所有的可以由我们自主命名的都可以称为是

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

删除对象的属性 delete的用法

Javascript的变量 实际上JavaScript中,变量 = 对象属性,这是因为 Javascript 在执行脚本之前会创建一个Global对象,所有的全局变量都是这个Global对象的属性,执行函数时也会创建一个Activation对象,所有的局部变量都是这个Activation对象的属性.如下例: var global = 42; this.global; // 42, 可以通过this来访问Global对象 this.global2 = 12; global2; // 12 func

js中,清空对象(删除对象的属性)

在项目中,有些对象用完后需要重置,下面简单介绍下JS中清除对象的方法.方法如下: 方法一:字面量定义对象 第一步,定义一个空对象并打印出来,代码和效果: 代码: var student = {};console.log(student); 打印结果: 第二步,为对象添加属性并打印,代码和打印结果如下: 代码: student.name = "xiaoming";student.age = 12;console.log(student); 打印结果: 第三步,删除对象属性(清空对象)并打

js 清空对象\删除对象的属性

在项目中,有些对象用完后需要重置,下面简单介绍下JS中清除对象的方法.方法如下: 方法一:字面量定义对象 第一步,定义一个空对象并打印出来,代码和效果: 代码: var student = {};console.log(student); 打印结果: 第二步,为对象添加属性并打印,代码和打印结果如下: 代码: student.name = "xiaoming";student.age = 12;console.log(student); 打印结果: 第三步,删除对象属性(清空对象)并打

js小知识 delete操作符

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