JavaScript 相关面试题
senmu2024/06/03
js 的数据类型有哪些?
- 基础数据类型
Number
、String
、Boolean
、undefined
、null
、Symbol
、BigInt
- 复杂数据类型
Object
它们分别存储在栈内存(Stack)和堆内存(Heap)中。
- 栈内存 — 内存中的连续空间、访问速度快;只能存储少量数据
- 堆内存 — 非连续空间、访问速度慢;一般用来存储大量数据
js 中数组有哪些方法?
从数组的操作(增、删、改、查)、排序、转换、迭代的角度来看,另外注意操作/方法是否会更改原数组,以及方法的返回值:
- 增
- push() 往数组尾部增加内容,返回新数组的长度,会改变原数组
- unshift() 往数组头部增加内容,返回新数组的长度,会改变原数组
- splice() 指定数组位置开始增加,返回空数组(因为返回值是删除的元素数组集合),会改变原数组
- concat() 创建当前数组的副本,往副本中添加内容,返回组合成的新数组,不会改变原数组
- 删
- pop() 删除数组尾部内容,返回被删除的元素,会改变原数组
- shift() 删除数组头部内容,返回被删除的元素,会改变原数组
- splice() 指定数组位置开始删除,返回被删除元素的数组集合,会改变原数组
- slice() 创建一个指定位置集合的数组,不会改变原数组
- 改
- splice()
- 查
- indexOf()
- includes()
- find()
- 排序
- reverse() 将数组反向排序(翻转数组),返回排序后的数组,会改变原数组
- sort() 将数组按照传入的回调函数的返回值 -1、0、1 来排序,返回排序后的数组,会改变原数组
- 转换
- join() 将数组按照传入的参数来转换,返回转换后的字符串,不会改变原数组
- 迭代
- forEach()
- filter()
- map()
- reduce()
- some()
- every()