JS 对操作符delete 的使用 规则 示例

 js 操作符delete 适用于删除对象中的某一属性       


   示例:var user["info"]={
                    name: 'zhagnsan',
                    age: 19 
                  }
delete   user["info"] //-----true       

通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔

如果你试图删除的属性不存在,那么delete将不会起任何作用,但仍会返回true

如果对象的原型链上有一个与待删除属性同名的属性,那么删除属性之后,对象会使用原型链上的那个属性(也就是说,delete操作只会在自身的属性上起作用)

当一个属性被设置为不可设置,delete操作将不会有任何效果,并且会返回false。

 

已声明的   变量/数组/函数   不可删除, 未声明的    变量/数组/函数    可以删除


示例:变量

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

示例:数组

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']

示例:函数

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

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


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


示例:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值