ES6+ includes()介绍
发布时间:2023-03-24 08:52:23 所属栏目:教程 来源:
导读:字符串查找一直都是程序中的常用操作,在 ES5 中查找一个字符串是否包含另一个字符串,一般有两种思维。一是使用正则的方式来匹配,二是使用 ES5 的方式,如 indexOf、lastIdexOf、search。使用正则比较简单,但是需
字符串查找一直都是程序中的常用操作,在 ES5 中查找一个字符串是否包含另一个字符串,一般有两种思维。一是使用正则的方式来匹配,二是使用 ES5 的方式,如 indexOf、lastIdexOf、search。使用正则比较简单,但是需要对正则语法有一定的了解。一般使用 indexOf() 来进行字符串的查找 ,它会返回查询后第一次出现的指定值的索引,如果未找到该值,则返回 -1。 ES6 新增方法 includes() 方法,来替代 indexOf() 弥补它的不足。而 ES6 提供了新的方法 includes() 可以更好地进行判断,而不需要根据返回的索引进行判断。 includes() 方法主要用于查询字符串,判断一个字符串是否包含另外一个字符串,其返回值是如果包含该字符串则返回 true 否则返回 false。 使用语法: str.includes(searchString[, position]) 参数说明: 参数 描述 searchString 需要查找的目标字符串 position (可选) 从当前字符串的哪个索引位置开始搜寻子字符串,默认值为 0 实例: var str = 'hello world'; console.log(str.includes('hello')); // true console.log(str.includes('hello', )); // false 在没有传入确切的查询字符串时,searchString 会被强制设置成 “undefined”,然后在当前字符串中查找这个值。 'undefined'.includes(''); // 返回 true 'undefined'.includes(); // 返回 true 'undefine'.includes(); // 返回 false 'imooc ES6 wiki'.includes(); // 返回 false 上面的代码最容易在面试中出现,考察你对 includes() 方法的理解程度。第 1 行返回 true 很容易理解,查询一个空字符串嘛这个没问题,但第 2 行返回的结果也是 true,这说明查询的字符串在 “undefined” 字符串中,还不能说被设置成了字符串 “undefined” 。 第 3 、 4 行代码中也没有传值,但返回的结果为 false,从而证明了在没有传值时,第一个参数的值被设置成字符串 “undefined”。 在没传值时和 indexOf() 的查询结果是一致的。下面我们看 indexOf() 在没有参数时是一个什么样的结果。 'undefined'.indexOf(); // 返回 0 'undefine'.indexOf(); // 返回 -1 上面的代码中,第 1 行返回的结果是 0,是查询结果的位置,第 2 行返回的是 -1,说明没有查询到。虽然返回的结果不一样,但是意义是一样的。includes() 可以替换 indexOf() 使用,includes() 好处在于它可以直接判断,而 indexOf() 还需要对结果进行对比,如下实例: const str = 'imooc ES6 wiki'; if (str.includes('ES6')) { // todo if (str.indexOf('ES6') !== -) { // todo } 上面代码中的两个 if 判断是一个意思,但是使用 includes() 很简洁,这也是 ES6 设计的初衷。 includes() 方法的引入是为了代替 indexOf() 作为字符串的查询的方法使用。 includes() 方法是区分大小写的。 'imooc es6'.includes('imooc'); // true 'imooc es6'.includes('Imooc'); // false includes() 在只有一个参数时,会从字符串的第一个字符开始查找。 var str = "I love imooc."; console.log(str.includes("I love")); // true console.log(str.includes("imooc")); // true console.log(str.includes("eimooc")); // false 当 includes() 有第二个参数的时候,会从第二个参数作为索引的位置开始。 var str = "I love imooc."; console.log(str.includes("love", )); // false console.log(str.includes("ove", )); // true 第二个参数的意思是,查找字符串开始的位置,例子中的 3 就是查找的位置,所以查找的目标字符串是 ove imooc.。 当第二个参数是负数时,只要查找的字符串在目标字符串里,无论是多少,都会返回 true。 var str = "I love imooc."; console.log(str.includes("love", -)); // true console.log(str.includes("ove", -)); // true console.log(str.includes("love", -)); // false (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |