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

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

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

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

    1,对象属性删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete ...

  2. js delete可以删除对象属性及变量

    ,对象属性删除 function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.name);//mm delete o ...

  3. js delete删除对象属性,delete删除不了变量及原型链中的变量

    js delete删除对象属性,delete删除不了变量及原型链中的变量 一.delete删除对象属性 function fun(){ this.name = 'gg'; } var obj = ne ...

  4. JS中delete删除对象属性

    1.删除对象属性 function fun(){   this.name = 'mm';   }   var obj = new fun();   console.log(obj.name);//mm ...

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

    Javascript: 删除指定对象:使用过程中只适合删除对象,如果数组中添加的是类型Function的话是删除不了的. function removeObjWithArr(_arr,_obj) { ...

  6. js中彻底删除对象属性

    delete运算符可以删除对象的属性,但是仅仅是断开了属性和宿主对象的联系,而不会去操作被删除属性的属性值,所以就需要彻底删除的出现 function myDelete(obj,propertyNam ...

  7. delete 删除对象属性

    删除属性要直接删.

  8. JS删除对象属性

    项目中有些属性使用之后需要重置 var user = {}; user.name = "123"; user.age="30"; console.log(use ...

  9. JS 删除对象属性

    updateNode: function(data) { if(data) { this.root[data.id] = data; } }, removeNodes: function(idsArr ...

随机推荐

  1. Google Protocol Buffers 快速入门(带生成C#源码的方法)

    Google Protocol Buffers是google出品的一个协议生成工具,特点就是跨平台,效率高,速度快,对我们自己的程序定义和使用私有协议很有帮助. Protocol Buffers入门: ...

  2. 九十九:CMS系统之ajax提交修改密码的数据

    顺便实现ajax提交的时候默认提交csrf_token var http = { 'get':function (args) { args['method'] = 'get'; this.ajax(a ...

  3. 前端学习(一) body标签(上)

    body标签中相关标签 主要内容: 字体标签:  h1~h6.<font>.<u>.<b>.<strong><em>.<sup> ...

  4. 【Linux】CentOS7安装mysql5.7

    官网下载地址 ​ https://dev.mysql.com/downloads/file/?id=471503 ​ 本文所用MySQL版本为5.7.19; 上传包 ​ 将mysql-5.7.19-1 ...

  5. 图文详解 : 什么是版本控制?Eclipse配置SVN和IDEA配置GIT教程

    前言 虽然在工作中, VCS已然配置妥当, 我们敲好的业务只需要Commit&push提交就好, 但是不妨碍我们了解什么是版本控制, 为什么要使用这类工具? ps.最近项目里的小伙伴想在自己家 ...

  6. 【VS开发】使用VS2010创建MFC ActiveX工程项目

    1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行.这个容器包括WEB网页,应用程序窗体等... Activ ...

  7. 《ThinkPHP 5.0快速入门》 基础和路由

    一.基础: 创建项目:conposer create-project topthink/think tp5 --prefer-dist 创建项目模块:php think build --module ...

  8. mybatis报错无法扫描到xml文件

    错误:java.io.IOException: Could not find resource com/xxx/xxxMapper.xml 原因:target目录下没有***.xml文件 解决方法:在 ...

  9. SQLite进阶-11.Join

    目录 JOIN 交叉连接 - CROSS JOIN 内连接 - INNER JOIN 外连接 - OUTER JOIN JOIN JOIN 子句用于结合两个或者多个数据表的数据,基于这些表之间的共同字 ...

  10. 03 Python基础

    1.输出和输入 (1)print打印 Python 提供print方法来打印信息 输入: print ("hello python") 调用print方法,用户双引号(" ...