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

  • 相关阅读:
    递推2 2046
    递推思想
    acm2047
    杭电ACM2043
    判断a=b?
    将一列字段用逗号分隔开,作为一个显示
    MESQL 数据误操作,恢复数据方法
    有两个frame,在一个frame中获取另一个frame中元素的值
    饼状图显示各类别展示所占百分比
    winfrom中的webbrowser内核版本修改
  • 原文地址:https://www.cnblogs.com/lpp-11-15/p/11284278.html
Copyright © 2011-2022 走看看