前端工程化(二)(精品、面试必备基础)(春招、秋招)

目录

什么是模块化?

事实上模块化开发最终的目的是将程序划分成一个个小的结构 ;

这个结构中编写属于自己的逻辑代码,有自己的作用域,定义变量名词时不会影响到其他的结构;

CommonJS规范和Node关系

复制代码
 我们需要知道CommonJS是一个规范,最初提出来是在浏览器以外的地方使用,并且当时被命名为ServerJS,后来为了体现它
的广泛性,修改为CommonJS,平时我们也会简称为CJS。

Node 是 CommonJS在服务器端一个具有代表性的实现;
Browserify 是CommonJS在浏览器 中的一种实现;
webpack 打包工具具备对CommonJS的支持和转换;

模块化的核心

导入和导出
导出
exports 和 module.exports 可以负责对模块中的内容进行导出
require 函数可以帮助我们导入其他模块 (自定义、系统、第三方库模块)

exports 导出 & require 导入

exports是一个对象 ,我们可以在这个对象中添加很多个属性,添加的属性会导出;

导出

javascript 复制代码
let FriendName = "康康"
exports.FriendName = FriendName
// 两秒后, 修改一下 FriendName
setTimeout(()=>{
    exports.FriendName = "芜湖"
},2000)

导入

javascript 复制代码
const bar = require('./bar.js');
console.log(bar.FriendName)
setTimeout(() => console.log(bar.FriendName),5000)

结果

康康

芜湖

说明

也就是require通过各种查找方式,最终找到了exports这个对象;

并且将这个exports对象赋值给了bar变量;

bar变量就是exports对象了;

所以后面

setTimeout(()=>{

exports.FriendName = "芜湖"

},2000) 一定要 exports.FriendName 才可以修改 FriendName

模块加载(持续更新)

相关推荐
去伪存真2 小时前
AI Agent Harness 深度测评与技术选型实战
前端·agent
wo_jack3 小时前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
FRing034 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
聪明的笨猪猪5 小时前
AI应用架构选型:架构师的核心决策困境与权衡
经验分享·面试·架构
疯华整猫7 小时前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
nice_lcj5208 小时前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist
IT_陈寒9 小时前
Java开发实战:从入门到精通
前端·人工智能·后端
风骏时光牛马10 小时前
生成一个AI转岗经历标题,只需要一个标题,不需要其他的任何文本。
前端
Csvn19 小时前
Monorepo
前端
Csvn19 小时前
流水线
前端