ECMAScript(简称 ES)其实就是 JavaScript 的语言标准,而 Node.js 本身就是用 JavaScript(ECMAScript + Node API)写的运行环境。所以在 Node 里“用 ECMAScript”,本质上就是写 JavaScript,只是不同 Node 版本支持的 ES 特性不同。
下面从「怎么用」「版本支持」「常见写法」三个角度说。
// index.js
const name = 'Tom'
console.log(`Hello, ${name}`)
运行:
node index.js
Node 默认支持 ECMAScript 2015+(ES6+) 的大部分语法。
Node 支持两种模块系统:
// a.js
module.exports = { sum: (a, b) => a + b }
// b.js
const { sum } = require('./a')
有两种开启方式:
方式一:文件后缀 .mjs
// a.mjs
export const sum = (a, b) => a + b
// b.mjs
import { sum } from './a.mjs'
方式二:package.json 中设置
{
"type": "module"
}
然后就可以用 .js 写 ESM:
import fs from 'fs'
| Node 版本 | 支持情况 |
|---|---|
| Node 14+ | 稳定支持 ES2020 |
| Node 16+ | ES2021 |
| Node 18+ | ES2022(顶层 await、structuredClone) |
| Node 20+ | 最新 ES 特性 |
查看版本:
node -v
let x = 1
const y = 2
const add = (a, b) => a + b
const { name, age } = user
async function getData() {
const res = await fetch(url)
return res.json()
}
const name = user?.profile?.name
const val = input ?? 'default'
const data = await fetchData()
npm install @babel/core @babel/preset-env
npm install typescript
TypeScript 本质是 ES 的超集,最终编译成 ES。
在 Node 中用 ECMAScript = 写 JavaScript
import/export 需开启 ESM如果你有具体场景(比如:Node 写后端、前端构建、老项目兼容),我可以给你更具体的用法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。