文章目录
-
-
-
- 1.什么是Babel,它的主要功能是什么?
- 2.`let` 和 `var` 的区别是什么?
- 3.如何定义箭头函数?它有哪些特点?
- 4.解构赋值的作用以及如何实现数组解构和对象解构?
- 5.Promise 的基本概念及状态变化流程?
- 6.Generator 函数的工作原理?
- 7.Rest 参数与 Spread 运算符的区别?
- 8.Async/Await 的工作机制?
- 9.JSON 字符串转对象的方法除了 `eval` 是否还有其他推荐方法?
- 10.ES7带来了哪些新特性?
- 11.如何区分ES5与ES6的主要差异?
- 12.ES6中模板字符串的作用是什么?如何使用?
- 13.什么是箭头函数?它的特点有哪些?
-
-
1.什么是Babel,它的主要功能是什么?
Babel 是一种 JavaScript 编译器,主要用于将现代 JavaScript (如 ES6+) 转换为向后兼容的版本(通常是 ES5),以便能够在旧版浏览器或其他环境中运行。通过 Babel 的转换能力,开发者可以在项目中使用最新的 ECMAScript 特性而无需担心兼容性问题。
2.let
和 var
的区别是什么?
let
是 ES6 中引入的一种声明变量的方式,它具有块级作用域(block scope)。相比之下,var
只有函数作用域和全局作用域,在同一作用域内重复声明不会报错,可能会覆盖之前的值。此外,let
不会像 var
那样被提升到当前作用域顶部。
function test() {
console.log(x); // 输出 undefined
var x = 1;
if (true) {
let y = 2;
}
console.log(y); // ReferenceError: y is not defined
}
test();
3.如何定义箭头函数?它有哪些特点?
箭头函数是一种更简洁的函数表达方式,语法如下:
const add = (a, b) => a + b;
其特点是:
- 无独立的 this 绑定:箭头函数内部的
this
始终指向定义时所在的上下文,而不是调用时的上下文。 - 不可作为构造函数:无法通过
new
来实例化箭头函数。 - 不能改变自身的 arguments 对象:箭头函数没有自己的
arguments
对象,而是继承自外部作用域。
4.解构赋值的作用以及如何实现数组解构和对象解构?
解构赋值允许从数组或对象中提取数据并将其分配给不同的变量。以下是两种常见的形式:
数组解构
const numbers = [1, 2, 3];
const [first, second] = numbers; // first=1, second=2