• 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

  • 相关阅读:
    h5手机端禁止缩放问题
    element upload 一次性上传多张图片(包含自定义上传不走action)
    vue开发移动端项目 过渡动画问题
    vue中使用transition标签底部导航闪烁问题
    vue element upload图片 转换成base64
    vue项目 sockjs-node一直报错问题
    获得省市区 二级 三级 四级 五级联动数据地址
    vue项目中引入第三方框架
    element中使用button会刷新一遍页面
    [Java] 字符流 Writer,输出字符数据PrintWriter
  • 原文地址:https://www.cnblogs.com/fly-xfa/p/5968928.html
Copyright © 2020-2023  润新知