zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    406. 根据身高重建队列 vector 自定义排序
    5552. 到家的最少跳跃次数 BFS
    5602. 将 x 减到 0 的最小操作数 双指针
    Hadoop Container is running beyond memory limits code143
    1122. 数组的相对排序 自定义排序
    328. 奇偶链表 链表
    127. 单词接龙 bfs
    5600. 第 K 条最小指令 组合数学
    5548. 最小体力消耗路径 二分
    1024. 视频拼接 dp
  • 原文地址:https://www.cnblogs.com/Joe-and-Joan/p/11691829.html
Copyright © 2011-2022 走看看