JS中如何区分 includes() 和 indexOf() 方法,它们在查找元素时有哪些不同之处?

2026-05-18 00:509阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计704个文字,预计阅读时间需要3分钟。

JS中如何区分 includes() 和 indexOf() 方法,它们在查找元素时有哪些不同之处?

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

1. 基本区别`includes()`和`indexOf()`都是用来检查数组是否包含某个元素的方法,但它们有以下几点区别:

- `includes()`:返回一个布尔值,表示数组是否包含指定的元素。- `indexOf()`:返回指定元素在数组中的位置(索引),如果不存在则返回-1。

2. 使用场景- `includes()`:适合快速判断数组是否包含某个元素,返回值清晰易懂。- `indexOf()`:适合获取指定元素在数组中的位置,进行更复杂的操作。

3. 示例代码javascript// includes()示例let array=[1, 2, 3, 4, 5];console.log(array.includes(3)); // 输出:true

// indexOf()示例console.log(array.indexOf(3)); // 输出:2console.log(array.indexOf(6)); // 输出:-1

希望这篇文章能帮助大家更好地理解`includes()`和`indexOf()`的区别,对大家有所帮助!

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

1、基本区别

  • includes()和indexOf()都是用来检查数组是否包含某些元素,includes()返回值是布尔值,indexOf()返回的是索引值,如果没有返回-1

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,在判断时,认为二者是相同的

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()可用于字符串

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

    JS中如何区分 includes() 和 indexOf() 方法,它们在查找元素时有哪些不同之处?

let str = 'a1b2c3' str.indexOf('2')); //3 str.indexOf(1)); //3

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

本文共计704个文字,预计阅读时间需要3分钟。

JS中如何区分 includes() 和 indexOf() 方法,它们在查找元素时有哪些不同之处?

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

1. 基本区别`includes()`和`indexOf()`都是用来检查数组是否包含某个元素的方法,但它们有以下几点区别:

- `includes()`:返回一个布尔值,表示数组是否包含指定的元素。- `indexOf()`:返回指定元素在数组中的位置(索引),如果不存在则返回-1。

2. 使用场景- `includes()`:适合快速判断数组是否包含某个元素,返回值清晰易懂。- `indexOf()`:适合获取指定元素在数组中的位置,进行更复杂的操作。

3. 示例代码javascript// includes()示例let array=[1, 2, 3, 4, 5];console.log(array.includes(3)); // 输出:true

// indexOf()示例console.log(array.indexOf(3)); // 输出:2console.log(array.indexOf(6)); // 输出:-1

希望这篇文章能帮助大家更好地理解`includes()`和`indexOf()`的区别,对大家有所帮助!

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

1、基本区别

  • includes()和indexOf()都是用来检查数组是否包含某些元素,includes()返回值是布尔值,indexOf()返回的是索引值,如果没有返回-1

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,在判断时,认为二者是相同的

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()可用于字符串

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

    JS中如何区分 includes() 和 indexOf() 方法,它们在查找元素时有哪些不同之处?

let str = 'a1b2c3' str.indexOf('2')); //3 str.indexOf(1)); //3

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