1. const、let 和 var 的区别是什么?
答案:
- var声明的变量是函数作用域或全局作用域,而- const和- let声明的变量是块级作用域。
- 使用 var声明的变量可以被重复声明,而const和let不允许重复声明同一变量。
- const声明的变量必须进行初始化赋值,而- var和- let声明的变量可以不进行初始化赋值。
2. 箭头函数与普通函数有何区别?
答案:
- 箭头函数没有自己的 this,它会捕获所在上下文的this值
- 箭头函数不能用作构造函数,不能使用 new关键字实例化
- 箭头函数没有 arguments对象,可以使用 rest 参数代替
3. 解释一下模板字符串及其优点
答案:
- 模板字符串是包含在反引号(`)内的字符串,可以跨行并包含插值表达式
- 通过 ${}语法可以方便地插入变量或表达式
- 模板字符串可以避免传统拼接字符串时的繁琐和易错问题
4. 什么是解构赋值?
答案:
 解构赋值是一种方便的方法,可以让我们从数组或对象中提取数据并赋值给变量。例如:
// 数组解构赋值
let [a, b] = [1, 2];// 对象解构赋值
let { x, y } = { x: 1, y: 2 };
5. 什么是 Promise?它的三种状态是什么?
答案:
 Promise 是 JavaScript 中处理异步操作的对象,它代表了一个异步操作的最终完成或失败,并返回结果值。
 Promise 有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。一旦进入 fulfilled 或 rejected 状态,Promise 就不会再改变状态。