“ECMAScript”和“Node.js”并不是并列的两种技术,而是规范与运行环境的关系。可以从下面几个层面理解它们如何“协作”。
let、const、箭头函数、Promise、async/await、class浏览器里的 JavaScript、Node.js 里的 JavaScript,都遵循 ECMAScript 规范
fs)http)✅ 简单说:
ECMAScript 是“语言”,Node.js 是“运行语言的地方”
// 这是 ECMAScript 语法
const sum = (a, b) => a + b;
// 这是 Node.js 提供的运行环境能力
console.log(sum(1, 2));
Node.js:
process, require, module)const fs = require('fs');
fs.readFileSync('a.txt');
const arr = [1, 2, 3];
arr.map(x => x * 2);
// a.js
module.exports = 1;
// b.js
const a = require('./a');
// a.mjs
export const x = 1;
// b.mjs
import { x } from './a.mjs';
Node.js 支持 两种模块系统,但:
.js 默认是 CommonJS.mjs 或 package.json 中 "type": "module" 才是 ESM| 能力 | 浏览器 | Node.js |
|---|---|---|
| ECMAScript 语法 | ✅ | ✅ |
| DOM | ✅ | ❌ |
window |
✅ | ❌ |
fs |
❌ | ✅ |
process |
❌ | ✅ |
// 前端和 Node 都可以用的纯 ECMAScript 函数
export function formatTime(t) {
return new Date(t).toISOString();
}
ECMAScript 定义“能写什么”,Node.js 决定“能在哪跑、能干什么”。
如果你愿意,我也可以:
你想从哪一块继续?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。