前端经典面试题合集, ES6 有哪些新特性?
前端经典面试题合集, ES6 有哪些新特性?
QA
Step 1
Q:: ES6
有哪些新特性?
A:: ES6(ECMAScript 2015
)引入了许多新特性,包括但不限于:
1.
let 和 const 关键字,用于声明变量。
2.
箭头函数(Arrow Functions),简化了函数的书写方式。
3.
模板字符串(Template Strings),支持多行字符串和嵌入表达式。
4.
解构赋值(Destructuring),从数组或对象中提取值并赋给变量。
5.
默认参数(Default Parameters),为函数参数设置默认值。
6.
展开运算符(Spread Operator),用于数组或对象的展开和合并。
7.
类(Class),引入了基于原型的面向对象编程。
8.
模块(Modules),使用 import 和 export 进行模块化开发。
9.
Promise,用于处理异步操作。
10.
Symbol,创建独一无二的值。
11.
Map 和 Set 数据结构。
Step 2
Q:: 什么是箭头函数,它与普通函数有什么区别?
A:: 箭头函数是 ES6 引入的一种简化函数表达式的语法。与普通函数相比,箭头函数没有自己的 this、arguments、super 或 new.
target 值。箭头函数中的 this 始终指向定义时所在的对象,而不是调用时所在的对象。此外,箭头函数也不能用作构造函数。
Step 3
Q:: 什么是模板字符串?
A:: 模板字符串是 ES6
引入的一种字符串表示方法。使用反引号()包裹,可以在字符串中嵌入变量和表达式,语法为
${expression}``。模板字符串支持多行字符串,且可以在其中直接嵌入 JavaScript 表达式,非常方便。
Step 4
Q:: 请解释一下解构赋值是什么以及如何使用?
A:: 解构赋值是 ES6
中的一种语法,允许从数组或对象中提取值并赋给变量。对于数组,可以按顺序提取值:const [a, b] = [1, 2];
。对于对象,可以按属性名提取值:const {name, age} = {name: 'John', age: 30};
。解构赋值使代码更加简洁明了,尤其是在处理函数参数和返回值时。
Step 5
Q:: 什么是 Promise,它是如何工作的?
A:: Promise 是 ES6
引入的一种用于处理异步操作的对象。它代表一个可能还未完成的操作及其结果。Promise 有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。通过 new Promise
创建 Promise 对象,并传入一个执行器函数,执行器函数接受两个参数:resolve 和 reject,分别用于将 Promise 状态变为成功或失败。Promise 提供 .then
方法处理成功和失败的回调函数,.catch
方法处理失败的回调函数。