*1.let和const以及var的区别,什么是变量提升,什么是暂时性死区? *
区别:
let具有块级作用,不能重复声明可以重复赋值
const具有块级作用域,不能重复声明 不能重复赋值
var全局作用域,可以重复声明,可以重新赋值
暂时性死区:
就是在块级作用域内使用let声明了变量,这个变量不受外部影响
变量提升:
事先声明变量,然后在赋值
2.箭头函数和普通函数的区别?
🤞 普通函数是很早就提出的,而箭头函数是es6提出的,他们两个在语法上不一样,并在普通函数与箭头函数他们this的指向也不要一样,普通函数内的this指向是如果没有绑定事件元素的时候,this指向的window,或者在闭包中this指向的也是window,如果函数绑定了事件,但并没有产生闭包,这个this指向的是当前调用的事件对象,箭头函数内this的指向是父作用域
🤞 箭头函数不能使用arguments,普通函数可以使用,arguments是以集合的方式获取函数传递的参数
🤞 箭头函数不能实例化为构造函数,而普通函数可以进行实例化