zoukankan      html  css  js  c++  java
  • js in

    定义:

    in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。(参见hasOwnProperty)

    注意事项:

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

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

     

    n         对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length)。

    // Arrays
    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    0 in trees        // returns true
    3 in trees        // returns true
    6 in trees        // returns false
    "bay" in trees    // returns false (you must specify the index number,
                      // not the value at that index)
    "length" in trees // returns true (length is an Array property)
     

    n         in的右边必须是一个对象,如:你可以指定一个用String构造器生成的,但是不能指定字符串直接量的形式:

    var color1 = new String("green");
    "length" in color1 // returns true
    var color2 = "coral";
    "length" in color2 // generates an error (color is not a String object)
     

    n         如果你使用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

     

    n         如果你把一个属性值设为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

     


     
  • 相关阅读:
    Windows平板优化设置
    MAC OS UI设计
    使用bat/vbs/ahk对Windows下进行自动化操作
    C#在高性能计算领域为什么性能却如此不尽人意
    自定义多重搜索
    CF797E Array Queries
    标记永久化学习笔记
    P7200 [COCI2019-2020#1] Lutrija
    P1075 [NOIP2012 普及组] 质因数分解
    基础数论重学笔记
  • 原文地址:https://www.cnblogs.com/signheart/p/6599790.html
Copyright © 2011-2022 走看看