javascript 中 in操作符

in in 操作检查对象中是否有名为 property 的属性。也可以检查对象的原型,以便知道该属性是否为原型链的一部分。

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

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

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

1
2
3
4
5
6
7
8
// 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)

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

1
2
3
4
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)

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

1
2
3
4
5
6
7
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

  

javascript 中 in操作符,布布扣,bubuko.com

javascript 中 in操作符

上一篇:项目ITP(五) spring4.0 整合 Quartz 实现任务调度


下一篇:[BUCTF] cscctf_2019_final_childrenheap