前端面试题--十二

55 阅读1分钟

1.var、const、let的区别。

const只能定义常量且必须给初始值,并且不能更改,不会发生变量提升,同一作用域不能重复定义同名变量。
var可以定义所有数据类型变量且可以只定义变量名不给初始值,当只定义变量名,控制台打印结果为 undefined,而且变量可以重新赋值,存在变量提升,同一作用域中可定义同名变量,且会覆盖以前定义的变量。
let只能定义常量且必须给出初始值,let定义的变量可重新赋值,不会发生变量提升,同一作用域不能重复定义同名变量。

2.promise 的三种状态

1.等待(pending)
2.已完成(fulfilled)
3.已拒绝(rejected)

3.普通函数和箭头函数的区别。

箭头函数是匿名函数,不能作用构造函数,不能使用new
普通函数可以用于构造函数,并创建对象。

4.说一下浅拷贝和深拷贝

浅拷贝:把一个对象中的所有的内容复制一份给另一个对象
深拷贝:把一个对象中的所有的属性和方法,一个一个的找到,并且在另一个对象中开辟相应的空间,一个一个的存储到另一个对象中