js关于indexOf的使用要注意的问题

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;

参考:https://blog.csdn.net/sliby_spe/article/details/83098823

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值