📜  JavaScript |新关键字(1)

📅  最后修改于: 2023-12-03 15:01:39.796000             🧑  作者: Mango

JavaScript | 新关键字

JavaScript 作为一门近年来崭露头角的编程语言,在不断地发展和更新。2020年底,JavaScript 又新增了一些关键字,本文将对这些关键字进行介绍。

importexport

以前在 JavaScript 中,导入和导出模块需要使用第三方库或者自己手动实现。但是自 ES6 以来,importexport 关键字已经成为内置的 JavaScript 语法,能够轻松地导入和导出模块。

导入模块

下面是一个使用 import 导入模块的示例:

// 导入一个默认导出的模块
import MyModule from './MyModule.js';

// 导入多个命名导出的模块
import { namedExport1, namedExport2 } from './MyModule.js';

// 导入默认导出和多个命名导出的模块
import MyModule, { namedExport1, namedExport2 } from './MyModule.js';
导出模块

下面是一个使用 export 导出模块的示例:

// 导出一个默认导出的模块
export default function MyFunction() {
  //...
}

// 导出多个命名导出的模块
export const namedExport1 = 'value1';
export const namedExport2 = 'value2';
letconst

在 ES6 之前,JavaScript 中只有 var 命令用来声明变量。var 命令有很多缺陷,比如它可以在函数内部任何位置声明变量,且声明的变量会提升到函数顶部。而 letconst 是新的声明变量的方式。它们解决了 var 的一些问题并且为 JavaScript 增加了一些新特性。

let

let 可以在代码块中声明变量,不会发生变量提升。它的作用域是代码块内。

let x = 1;

if (true) {
  let x = 2;
  console.log(x);  // 输出 2
}

console.log(x);  // 输出 1
const

const 声明的变量是常量,一旦声明,它的值就不能被改变。它的作用域与 let 相同,也是在代码块内。

const PI = 3.1415;
PI = 3;  // 报错,因为 PI 是一个常量
asyncawait

JavaScript 是单线程执行的语言,因此异步编程在其中尤其重要。在 ES7 中,JavaScript 引入了 asyncawait 两个新关键字来简化异步编程。

async

async 函数是指返回一个 Promise 对象的函数。在函数中,你可以使用 await 暂停和恢复异步执行。

async function myFunction() {
  return 'Hello world!';
}

myFunction().then((result) => {
  console.log(result);  // 输出 'Hello world!'
});
await

await 只能在 async 函数中使用。当使用 await 等待一个 Promise 对象时,它会暂停执行,直到 Promise 对象返回一个结果。

async function myFunction() {
  let promise = new Promise((resolve, reject) => {
    setTimeout(() => resolve('done!'), 1000);
  });

  let result = await promise; // 等待 promise 完成
  console.log(result); // 输出 'done!'
}

myFunction();
总结

以上是 JavaScript 中新增的一些关键字。通过使用 importexport 可以更方便地管理代码模块,使用 letconst 可以避免一些常见的错误,使用 asyncawait 可以使异步编程更简单而不必使用回调函数和 Promise 对象。