【面试题】JS_核心
1. 数据类型以及存储方式*
2. 判断数据类型的方法*
3. 数组的方法有哪些*
(1)对数组有影响的方法
- push
- pop
- unshift
- shift
- splice
- reverse
- sort
(2)ES5部分方法
- join
- concat
- slice
- toString
(3)遍历相关的方法
- forEach
- map
- every
- some
- filter
- reduce
(4)索引相关的方法:
at: 根据索引找元素。arr.at(6)
indexOf: 返回第一次出现元素的下标,如果没有返回-1 arr.indexOf('vue') // 3
includes: 判断一个数组是否包含某个元素,返回true/false(类似indexOf,但是返回值不同)
find: 根据回调函数的返回值的真假,返回匹配的第一个元素arr.find(item => item>10)
findLast: 反向遍历数组,并返回匹配到的第一个值
findIndex: 类似find,不过返回的是元素索引
findLastIndex: 类似findLast,不过返回的是索引
(5)静态方法:
Array.from: 将一个可迭代的对象创建成一个新的数组
Array.isArray: 判断传入的值是否是数组类型
Array.of: 类似于Array() 但是如果使用Array(7)会创建长度为7的数组,而Array.of(7)则结果是[7],是只有元素为7的数组
(6)其他方法:
flat:根据参数的深度,递归将所有元素拼接到数组中(扁平化)
group: 回调函数返回的字符串值来进项分组,返回分组后的对象
4. 字符串的方法有哪些
5. 0.1 + 0.2等于什么
6. 说一下运算符的优先级
7. null和undefined的区别
8. 说一下作用域与作用域链*
9. 什么是变量提升与函数提升*
10. 谈谈你对闭包的理解*
11. 如何判断以及修改this*
12. new操作符的作用*
- 创建一个空对象
- 将对象的隐式原型设置为函数的prototype对象
- 让函数this指向该对象,并执行函数代码
- 返回创建对象