1、forEach、for in、for of三者区别
forEach更多的用来遍历数组
for in 一般常用来遍历对象或json
for of数组对象都可以遍历,遍历对象需要通过和Object.keys()
for in循环出的是key,for of循环出的是value
2、var、let、const之间的区别
var 可以重复声明变量,而let不可以重复声明
var 是不受限于块级作用域的,而let是受限于块级作用域
va 声明的变量会挂载到window上,而let不与window相映射
var 可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
const声明之后必须赋值,否则会报错
const定义不可变的量,改变了就会报错
const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错
3.异步同步
异步:向服务器发送请求,必须等请求到内容,才能刷新页面,用户才能看到新内容
同步:向服务器发送请求,这时可以做其他事情,内容请求到时,用户不用刷新页面,也可以看到新内容
4.箭头函数和普通函数的区别?
区别:this指向不同;
普通函数:谁调用这个函数,this指向谁;
箭头函数:在哪里定义函数,this指向谁。
5. 数组去重
1.es6 中的set
2.遍历去重
fliter : 当前的index与indexOf(elem)的值不一致去重
对象key唯一 :用一个临时对象把数组的值,当key存储在对象中,如果对象上已经有key值,说明数组的值是重的