首页 > web前端 > js教程 > 正文

JS中 includes() vs indexOf(),聊聊它们有什么区别

青灯夜游
发布: 2021-12-20 16:36:27
转载
5770人浏览过

本篇文章给大家简单对比一下javascript中的includes() 和 indexof()方法,聊聊它们有什么区别,希望对大家有所帮助!

JS中 includes() vs indexOf(),聊聊它们有什么区别

1、基本区别

  • includes()和indexOf()都是用来检查数组是否包含某些元素,includes()返回值是布尔值,indexOf()返回的是索引值,如果没有返回-1。【相关推荐:javascript学习教程

let arr = [1,2,3]
arr.indexOf(0)	// -1
arr.indexOf(2)	// 1
arr.includes(2)	// true
登录后复制

2、检查NAN和undefined

  • 因为indexOf()是严格按照===操作符来做值的比较,所以indexOf()不能检查NAN,但是includes()可以

let arr = [NaN,]
arr.indexOf(NaN)	// -1
arr.indexOf(undefined) // -1
arr.includes(NaN)	// true
arr.includes(undefined)	// true
登录后复制

3、检查-0和+0

  • includes()和indexOf()没有区分-0和+0,在判断时,认为二者是相同的

    有道小P
    有道小P

    有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。

    有道小P64
    查看详情 有道小P
let arr = [+0]
arr.includes(-0) // true
arr.indexOf(-0) // 0
登录后复制

4、不能检查复杂数据类型

  • 二者只能判断简单数据类型,对于对象、数组等复杂数据类型是不可以判断的

let arr = [{a:1},{a:2}]
arr.includes({a:1}) // false
arr.indexOf({a:1}) // -1
登录后复制

5、indexOf()可用于字符串

  • 返回指定字符第一次出现的位置,并且存在有隐式转换

let str = 'a1b2c3'
str.indexOf('2')); //3
str.indexOf(1)); //3
登录后复制

更多编程相关知识,请访问:编程视频!!

以上就是JS中 includes() vs indexOf(),聊聊它们有什么区别的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:掘金社区网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号