/** **位置方法indexOf()和lastIndexOf() **这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引 **indexOf()方法从数组的开头(位置0)开始向后查找 **lastIndexOf()方法则从数组的末尾开始向前查找。 **这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1 **/ var numbers = [1,2,3,4,5,4,3,2,1]; alert(numbers.indexOf(4)); //3 alert(numbers.lastIndexOf(4)); //5 alert(numbers.indexOf(4, 4)); //5 alert(numbers.lastIndexOf(4, 4)); //3 var person = { name: "Nicholas" }; var people = [{ name: "Nicholas" }]; var morePeople = [person]; alert(people.indexOf(person)); //-1 alert(morePeople.indexOf(person)); //0
这个例子中让人难以理解的可能是最后一个两行的输出。我就按照我的理解来解释一下:
person中存放的是对象的引用,该引用指向的是{name:"Nicholas"},而people中的{name:"Nicholas"}对象和person指向的是不同的物理地址,所以他们是不相同的。