es6的includes()方法更简洁清晰地判断字符串是否包含子串,返回布尔值、支持起始位置参数、区分大小写,需兼容ie时用polyfill或编译处理。

ES6 的 includes() 方法可以直接判断字符串是否包含某个子串,比 indexOf() !== -1 更简洁、语义更清晰。
语法更直观,语义一目了然
includes() 返回布尔值,直接表达“是否包含”,无需额外比较:
-
旧写法(易读性差):
str.indexOf('abc') !== -1 -
新写法(直白明确):
str.includes('abc')
支持起始位置参数,灵活控制搜索范围
第二个参数可指定从第几个字符开始查找,避免手动截取或计算索引:
-
'hello world'.includes('world', 6)→true(从索引 6 开始找) -
'hello world'.includes('world', 7)→false('w' 在索引 6,7 开始就错过了)
注意大小写敏感,需手动处理忽略大小写的场景
includes() 默认区分大小写,如需忽略大小写,推荐先统一转小写(或大写)再判断:
str.toLowerCase().includes(search.toLowerCase())- 不建议用正则替代——
includes()本意是简单包含判断,过度封装反而降低可读性
兼容性需留意,老旧环境要加 polyfill 或编译处理
IE 完全不支持,Chrome 41+、Firefox 40+、Safari 9+ 开始支持。实际项目中:
- 若需兼容 IE,可用 Babel 编译或引入
core-jspolyfill - 现代前端项目(Vue CLI / Create React App 等)默认已处理,可放心使用
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











