关于indexOf的全等匹配

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是同一个引用地址,指向同一个对象

参考《JavaScript高级程序设计(第三版)》 P95
上一篇:代码push后,评审关闭,导致代码pull的不是最新的问题


下一篇:用HBuilderX打包的wap2app,判断页面是浏览器打开还是app打开