indexOf()使用的是严格的 === 比较,即值和数据类型必须都相等。
js的数据类型基本分为六种:number、string、boolean、null、undefined、object(但object又可细分为Funtion、Array、Date、···)
所以在判断的出错的时候,可以使用 typeof方法或 instanceof方法判断一下类型,是否是类型不匹配问题。
typeof可以判断 number、string、boolean、function、undefined类型,但arr, json, nul, date, reg, error 全部被检测为object类型。
instanceof 方法能比较Array、Object、json、Function、Date、RegExp、Error类型,而且要求开发者明确地确认对象为某特定类型()。而且number, string和boolean没有检测出他的类型
js判断类型可阅读:https://www.cnblogs.com/starof/p/6368048.html
问题1:判断一个数字是否在数组里。
结果就是无论怎么比较,都返回的是 -1,数组找不到相等的值。
个人认为是js把定义的数字当成了字符串类型了,所以无论怎么比较,两个类型都是不匹配的,结果就为-1;
所以解决办法就是自己写一个for循环判断
问题2:判断ajax返回的数据是否在数组里
ajax返回的数据类型js并不会把它作为string而是object,所以返回的是-1;