学习javascript高级语言程序设计:
indexOf()和lastIndexOf()都接收俩个参数:要查找的项和表示查找位置的索引,索引代表从什么位置开始找
返回项所在数组中的位置,当搜索不到的时候返回-1
var numbers = [1,2,3,4,5,4,3,2,1];
console.log(numbers.indexOf(4));//3
console.log(numbers.lastIndexOf(4));//5
console.log(numbers.indexOf(4,4));//5
console.log(numbers.indexOf(6));//-1
最关键:在比较第一个参数的时候与数值中的每一项的时候,会使用全等符号
var person = {name: "Nicholas"};
var people = [{name: "Nicholas"}];
var morePeople = [person];
console.log(people.indexOf(person))//-1找不到返回-1
console.log(morePeople.indexOf(person))//0,第0位
为什么会找不到返回-1呢? 应为对象的值一样但不是同一个对象,相当于person的值在另一个对象的里面,但people对象中有一个一样的值,但二者不相同对象不一样所以===比较的时候就会返回flast;
其实也就是引用类线的指向问题