• js 关键字 in 的使用方法


    for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。

      对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以 
      最好数组使用正常的for循环,对象使用for-in循环
      对于对象 ,迭代出来的是对象的属性;

      var obj = {
        "key1":"value1",
        "key2":"value2",
        "key3":"value3"
      };

      function EnumaKey(){
        for(var key in obj ){
          alert(key);
        }
        }

        function EnumaVal(){
          for(var key in obj ){
            alert(obj[key]);
            }
          }

    javascript中in关键字还有下面的作用
    定义:

    in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。
    var Fn = function () { this.age = 1; };
    Fn.prototype.name = 'jim';
    // Fn.prototype.age = undefined;
    var f = new Fn();
    // hasOwnProperty
    // 如何判断属性是被继承的???
    console.log( 'age' in f && !f.hasOwnProperty( 'age' ) );
    // age 可能存在原型链上, 也可能不存在

    // 如果属性值就是 null 或 undefined, 那么此时 f.age 就无法判断了

    对于一般的对象属性需要用字符串指定属性的名称

    如:
    var mycar = {make: "Honda", model: "Accord", year: 1998};
    "make" in mycar // returns true
    "model" in mycar // returns true


    如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false,如:

    var mycar = {make: "Honda", model: "Accord", year: 1998};
    delete mycar.make;
    "make" in mycar; // returns false

    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    delete trees[3];
    3 in trees; // returns false
    如果你把一个属性值设为undefined,但是没有使用delete操作符,使用in检查,会返回true.

    var mycar = {make: "Honda", model: "Accord", year: 1998};
    mycar.make = undefined;
    "make" in mycar; // returns true

    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    trees[3] = undefined;
    3 in trees; // returns true

  • 相关阅读:
    前端经典书籍
    D3基本概念
    Array.map和parseInt的用法
    首屏和白屏时间计算
    css换肤总结
    文件上传总结
    js的uuid
    html5 drag事件用法
    shell脚本中的逻辑判断 文件目录属性判断 if特殊用法 case判断
    Mac vim“装逼”配置
  • 原文地址:https://www.cnblogs.com/libin-1/p/5972222.html
Copyright © 2020-2023  润新知