JavaScript面试题系列 :
一 :讲一下 var, let ,const 的区别:
var : 没有确定的作用域, 是弱类型的,支持变量提升,
let : 有块级作用域,ES6语法 ,不允许重复声明 ,暂存式死区.不能通过window 变量访问
const:ES6语法,有块级作用域,不允许重复声明,暂存式死区,声明了一个变量后就不能改变,改变就报错,声明必须初始化(既赋值)
二:箭头函数和普通函数的区别是什么?(讲到箭头函数就会有this的相关问题)
普通函数this:
1.this总是代表它的直接调用者。
2.在默认情况下,没找到直接调用者,this指的是window。
3.在严格模式下,没有直接调用者的函数中的this是undefined。
4.使用call,apply,bind绑定,this指的是绑定的对象.
箭头函数this
1. 在使用=>定义函数的时候,this的指向是 定义时所在的对象,而不是使用时所在的对象
2. 不能够用作构造函数,这就是说,不能够使用new命令,否则就会抛出一个错误;
3. 不能够使用 arguments 对象;
4. 不能使用 yield 命令;
/ 普通函数
function f1(){
console.log("我是普通函数");
}
f1()
/箭头函数: 箭头函数相当于匿名函数,如果没有参数,就只写一个(),有参数直接写在(参数1,参数2)
let f2 = () =>console.log("ddd");// 如果函数里面只有一个表达式,可以省略{}和return
f2()
let f3 = ()=>{ // 如果有多个表达式则不能省略{}和return
console.log("我是箭头函数");
f1()
}
f3()
有查看相关资料:https://www.cnblogs.com/1825224252qq/p/11772370.html
https://www.jianshu.com/p/c26c9c1c73f0