Array.prototype.includes()

来源:5-1 数组扩展:Array.prototype.includes()

_123456789X

2021-03-22

老师,视频中7分40秒时候说Array.prototype.includes()不能判断引用类型,这个应该是说错了吧?
// 代码
const data = [3]
const arr = [1, 2, data]
arr.includes(data) // true
arr.indexOf(data) // 2

写回答

1回答

谢成

2021-03-22

这个问题可以从两方面来看:

1、按照你写的,这样是可以的:

const data = [3]
const arr = [1, 2, data]
arr.includes(data) // true

2、如果引用数据类型直接写的话:

const arr = [1, 2, [3]]

console.log(arr.includes([3])) // false


这两个区别在于,引用数据类型是存在堆内存里的,栈内存里存的是引用地址。

可能是我在课程中没有表述清楚,我想说的应该是第二种情况。

0
1
_123456789X
非常感谢!
2021-03-22
共1条回复

JavaScript ES(6-11)全版本语法 前端都需要的基础课

前端无门槛学习,从ES6到ES11,一套课程掌握JS最新语法

1342 学习 · 297 问题

查看课程