箭头函数是ES6引入的一种新的函数语法,它提供了一种更简洁的方式来书写函数表达式。
箭头函数没有自己的this、arguments、super或new.target。这些值从外部最近的正常函数继承而来。
箭头函数不能用作构造函数,因此没有prototype属性。
解构赋值是ES6引入的一种语法糖,它允许你从数组或对象中提取数据并赋值给新的变量。这种特性使得代码更加简洁和易于阅读。
应用场景
交换变量值:无需使用临时变量即可交换两个变量的值。
函数参数:从函数参数中解构出需要的数据。
函数返回值:处理函数返回的对象或数组。
数组和对象的属性提取:快速提取数组或对象的属性到变量中。
ES6引入的一种新的字符串字面量特性,它允许你以更简洁、更易读的方式构建字符串。
1 多行字符串:
模板字符串可以跨越多行,不需要使用+来连接多行字符串。
const greeting = `Hello
World`;
2 插值表达式:
你可以在${}中插入变量或表达式,模板字符串会在运行时计算并替换这些表达式。
const name = 'Kimi';
const greeting = `Hello, ${name}!`;
3 模版字符串还可以与数组,对象结合起来使用
Promise 对象和 async/await 语法都是 JavaScript 中处理异步操作的重要特性,它们提供了不同的方式来简化异步代码的编写和管理。
Promise 是一种用于异步计算的对象。一个 Promise 对象代表了一个可能还不可用的值,或者一个在未来某个时间点才可用的最终值。
const myPromise = new Promise((resolve, reject) => {
// 异步操作
doSomethingAsync().then(result => {
resolve(result); // 操作成功
}).catch(error => {
reject(error); // 操作失败
});
});
myPromise.then(result => {
console.log(result); // 处理结果
}).catch(error => {
console.error(error); // 处理错误
});
doSomething()
.then(result => doSomethingElse(result))
.then(newResult => doThirdThing(newResult))
.catch(error => console.error(error));
Promise.all([promise1, promise2, promise3]).then(results => {
// results 是一个数组,包含了所有 promise 的结果
});
async/await 是建立在 Promise 之上的语法糖,它使得异步代码看起来和同步代码类似,更易于编写和理解。
async function fetchData() {
try {
const result = await someAsyncFunction();
console.log(result);
} catch (error) {
console.error(error);
}
}