javascropt和NodeJs的概念和关系
参考:https://juejin.cn/post/7230683405544669243?searchId=2023091917113181CE79DA54054FAB869F
javascropt
起初作为一种脚本语言,在浏览器中运行,浏览器可以解析JavaScript代码。后来衍生为一种服务端语言,那么就需要另一种类似浏览器的解析器来运行JavaScript代码,NodeJs便产生了,它是一种基于V8引擎的JavaScript运行环境,可以提供fs、http等内置对象。Express和koa是NodeJs的开发框架。
ES6
参考:https://juejin.cn/post/6844903655175356424?searchId=2023091917502660DDCCB12A08AF009202
ES的全称是ECMAScript,ES6在2015 年 6 月正式发布,ECMAScript和JavaScript的关系,简单来说ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。
ES6中包含var,let,const,箭头函数、模板字符串、类class、Promise、Symbols等等。
CommonJs和ES Module
参考:https://juejin.cn/post/6970296913039999007?searchId=20230919175505C1908D8D0A3A99072390
- CommonJS导入导出
require
module.exports
exports - ES Module导入导出
import
export
export default
CommonJs的出现早于ES Module,CommonJs用于NodeJs,CommonJS 是同步加载模块,而加载模块就是去服务端获取模块,加载速度会受网络影响,假如一个模块加载很慢,后面的程序就无法执行,页面就会假死。而服务端能够使用 CommonJS 的原因是代码本身就存储于服务器,加载模块就是读取磁盘文件,这个过程会快很多,不用担心阻塞的问题。所以浏览器加载模块只能使用异步加载,这就是 ES Module的诞生背景