zoukankan      html  css  js  c++  java
  • 获取对象属相 点运算符 和方括号 运算符


    var foo = 'name' var obj = { foo:'恭迎夷陵老祖', name:'魏无羡' } obj.foo //恭迎夷陵老祖 obj['foo'] //恭迎夷陵老祖 obj[foo] //魏无羡
    Object.keys(obj) // ['foo','name']

    点运算符 和方括号运算符 都可以获取对象的属性值。不同的是 方括号运算符 在获取对象的属性值时要加引号,如果不加引号 会被当做变量处理。

    属性的查看:Object.keys()方法。

    属性的删除:delete

    var obj = { 
         p: 1 
    };
    Object.keys(obj) // ["p"]
    
    delete obj.p // true
    obj.p // undefined
    Object.keys(obj) // []

    delete 删除对象的属性,删除成功后返回true。如果删除一个不存在的属性,不会报错,返回true。

    var obj ={}
    
    deleter obj.p //true

    只有当该属性存在,且不得删除时才返回false,另外,

    delete只能删除自身的属性,不能删除继承的属性,但是仍然会返回true,只是不能删除。

    var obj = {};
    delete obj.toString // true
    obj.toString // function toString() { [native code] }

    属性是否存在 :in运算符

    in运算符用于检查对象是否包含某个属性(注意,检查的是键名,不是键值),如果包含就返回true,否则返回false。它的左边是一个字符串(要用引号包裹),表示属性名,右边是一个对象。

    它不能识别哪些属性是对象自身的,哪些属性是继承的。

            var obj = {
                p:'123'
            }
            'p' in obj  //true
            'toString' in obj //true

    hasOwnProperty 可以识别哪些属性是自身的 

    obj.hasOwnProperty('toString')  // false
    obj.hasOwnProperty('p') // true

    属性的遍历 for...in

    var obj = {a: 1, b: 2, c: 3};
    
    for (var i in obj) {
      console.log('键名:', i);
      console.log('键值:', obj[i]);
    }
    // 键名: a
    // 键值: 1
    // 键名: b
    // 键值: 2
    // 键名: c
    // 键值: 3
    • 它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
    • 它不仅遍历对象自身的属性,还遍历继承的属性。
      所以我们在使用遍历时与  hasOwnProperty 方法结合,判断它是否是自身的属性。
              var person = {
                  name:'魏无羡'
              }
      
              for(var p in person){
                  if(person.hasOwnProperty(p)){
                      console.log(p) // name
                  }
              }

    原文链接 https://wangdoc.com/javascript/types/object.html

  • 相关阅读:
    java操作生成jar包 和写入jar包
    jboss配置jndi连接池
    windows 域的LDAP查询相关举例
    LDAP error Code 及解决方法
    HDU 6417
    CF1299D Around the World
    codechef Chef and The Colored Grid
    Educational Codeforces Round 82 (Rated for Div. 2)
    CF1237F Balanced Domino Placements
    CF1254E Send Tree to Charlie
  • 原文地址:https://www.cnblogs.com/lpp-11-15/p/11284278.html
Copyright © 2011-2022 走看看