indexOf在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===一样),下面是例子:
var person = { name: "Nicholas" };
var people = [{ name: "Nicholas" }];
var morePeople = [persopn];
alert(people.indexOf(person)); // -1
alert(morePeople.indexOf(people)); //0
alert(people[0] === morePeople); //false
这里可以很明显看出indexOf的匹配是全等(===),
虽然people[0]和morePeople对象值看上去相等,但是两者的引用地址却不相等,分别代表不同的对象。
而morePeople直接将person作为自己的第一个数组元素,所以morePeople[0]和person是同一个引用地址,指向同一个对象