7. 说⼀下 var 、let、const 之间的区别?
var 存在提升,我们能在声明之前使⽤。 let 、 const 不存在声明提升
var 定义的全局变量可以作为顶层属性使用,就是 window.xxx 使用,其他两者不会
let 和 const 作⽤基本⼀致,const 声明的是常量,不能再次赋值
let 和 const 不能重复声明变量
let 和 const 声明是块级作用域
扩展:const 定义的基本数据类型不能修改,定义的复杂数据类型能修改。
因为基本数据类型存在栈里,复杂数据类型存在堆里。
8. 说⼀下数组去重的⽅法有哪些?es6 如何实现数组去重?
indexof
双层 for 循环
set ⽅法
let res2 = [...new Set(arr2)]
9. 说⼀下如何检测对象⾥⾯有没有属性(或者如何检测⼀个对象是否为空)?以及如何获取对象⾥⾯所有的属性名?
通过 Object.keys ⽅法, 返回值数组,数组⾥⾯包含的是所有属性名
obj.hasOwnProperty()
使⽤ for in 的⽅式
10. 如何将多个数组合并成为⼀个数组?
Es5 :
concat
for 循环
Es6:
扩展运算符
map ⽅法
举例代码:
let res3 = [...arr3, ...arr4]
let res4 = res3.concat(res4)
11. 说⼀下 es6 如何实现类以及如何实现类的继承?
class 是实现面向对象编程的语法,面向对象是一种编程思想,就是把所有的东西描述成一个对象,这个对象有属性有方法,在用的时候就可以实例化去使用。
es6 提出了 class 类的概念,可以创建对象,es5 时候是构造函数创建的,所以 calss 是构造函数的语法糖。
我们创建⼀个类只需要⽤过关键词 class 去声明就可以了 , 他的调⽤⽅式和构造函数的调⽤⽅式是
⼀样的。
通过 es6 的类还给我们提供⼀个 extends 这样的⼀个关键字,来实现继承,用 super 调用父类的构造函数。
12. 字符串的方法
charAt( ) 方法从一个字符串中返回某个下标上的字符
concat( ) 方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。
search( ) 获取某个字符或者字符串片段首次出现的位置
match( ) 检索字符串或者正则表达式
replace( ) 替换
replace(参数 1,参数 2); 参数 1:替换谁 参数 2:替换值
split( 参数 1,参数 2 ) 字符串切割,切割后返回数组
slice( ) 和 substring( ) ( 开始位置,结束位置 ) 获取两个索引值之间的字符串片段 从下标 2 开始截取,到下标 4 结束,但不包含 4
substr ( 开始位置,截取的长度 ) 获取两个索引值之间的字符串片段
indexOf( ) 获取某个字符或者字符串首次出现的位置,找到则返回索引值,找不到则返回-1
lastIndexOf( ) 获取某个字符或者字符串最后出现的位置,找到则返回索引值,找不到则返回-1
13. 数组的方法
1. Array.from 把类数组结构 或者带有 length 的结构转化成数组 from 是构造函数的方法
2. Array.of()可以把一组参数转换为数组 of 更方便 只要传参数就转化为数组
3. Array.isArray([ ]);true 也是构造函数的方法 用来检测是否是数组
还有 new Array() instanceof Array 也能检测数组
4. fill 填充数组
5. copyWithin 复制数组里的某一部分 插入到数组里的某个位置
第一个参数是插入的位置 第二个参数是开始复制的位置 第三个是结束的位置
6. reverse(倒序)不是排序 只是颠倒数组 原数组发生改变
7. sort 返回值 是排序后的数组 原数组也会发生改变
8. concat 合并数组 原数组不变 返回合并后的新数组
9. slice 截取数组 原数组不变 返回新的数组
参数是负数 就加上数组的长度 一个参数 就直接截到最后
10. splice 删除 替换 增加
原数组发生改变;
删除 传两个参数 开始的位置 删除的个数 返回值删除的值
替换和插入 是三个甚至更多参数
开始的位置 删除的长度(要插入的话第二个参数是 0) 要替换或者插入的值
11. indexOf 从左往右找下标
lastIndexOf() 从右往左找下标
如果有就返回位置 没有就返回-1
12. includes 判断是否含有 返回 布尔值
push 末尾添加 返回值是新数组的长度
pop 末尾删除
unshift 开头添加
shift 开头删除
# 数组高阶函数 接收一个函数作为参数
13. find 查找 只要找到满足条件的就不再继续找了 返回值是找到的第一个值
14. filter 过滤 筛选满足条件的 放在一个新的数组中 返回值就是筛选出来的数据
15. findIndex 根据条件查找数组内匹配项的下标
16. every 都满足就返回 true
17. some 有一个满足就返回 true
18. map 和 foreach 都是循环遍历
forEach 没有返回值 对数组循环然后做一个操作 原数组会变
map 对原数组进行操作 得到一个新的数组 必须有返回值
19. flat 将多维数组扁平化,并返回一个新数组。方法接受一个数值,表示要扁平化的数组维度
20. reduce 方法接收一个函数作为累加器