学习笔记之-----ES6,前端研发岗必问30+道高级面试题

● node实现了CommonJS模块化

● node v13.2.0之前

○ 在package.json中配置:

{

“type”: “module”,

“scripts”: {

“start”: “node --experimental-modules index.js”

}

}

● node v13.2.0之后

○ 只需要在package.json中配置:

{

“type”: “module”

}

ES6之前的模块化(CommonJS、AMD、CMD)

=======================================================================================

● CommonJS

○ 它通过 require 来引入模块,通过 module.exports 定义模块的输出接口。这种模块加载方案是服务器端的解决方案(同步),node完成了对它的支持

● AMD

○ 采用异步加载的方式来加载模块,模块的加载不影响后面语句的执行。require.js 实现了 AMD 规范。

○ 对浏览器端的异步加载尤其适用,是一个浏览器端模块化开发的规范。

● CMD

○ 和 AMD 方案都是为了解决异步模块加载的问题,sea.js 实现了 CMD 规范。

区别:

AMD是依赖前置,在定义模块的时候就要声明其依赖的模块。

CMD是就近依赖,只有在用到某个模块的时候再去require

ES6与CommonJS的区别

===========================================================================

● CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。

● CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。

整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取方法。这种加载称为“运行时加载”,

ES6模块化在代码编译阶段从fs模块加载需要的方法,其他方法不加载。这种加载称为“编译时加载”或者静态加载,即 ES6 可以在编译时就完成模块加载,效率要比 CommonJS 模块的加载方式高。

浏览器端对ES6模块化的支持

==========================================================================

//1.在script标签中使用

//2.文件引入的方式

模块导出(export)

========================================================================

● 分别导出

● 统一导出

● 默认导出(export default)

模块导入(import)

========================================================================

● 通用导入

● 关于别名

● 解构导入

● 默认导入(export default)

CommonJS的模块化

========================================================================

// CommonJS模块

let { stat, exists, readfile } = require(‘fs’);

// 等同于如下代码块

let _fs = require(‘fs’);

let stat = _fs.stat;

let exists = _fs.exists;

let readfile = _fs.readfile;

//模块导出(a.js)

module.exports = {

firstName: ‘Michael’,

lastName: ‘vicky’

};
//模块导入(b.js)
const { firstName, lastName } = require(‘./testExports’);
console.log(firstName, lastName);

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

47)]
[外链图片转存中…(img-0MffcZqu-1710925517648)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-9BEKzBRE-1710925517648)]

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值