Common.js规范

为什么需要CommonJs规范:

JS没有模块系统、标准库较少、缺乏包管理工具;为了让JS可以在任何地方运行,以达到Java、C#、PHP这些后台语言具备开发大型应用的能力;

定义和加载模块

在CommonJs规范中:

  1. 一个文件就是一个模块,拥有单独的作用域;

  2. 普通方式定义的变量、函数、对象都属于该模块内;

  3. 通过require来加载模块;

  4. 通过exportsmodul.exports来暴露模块中的内容;

模块中的所有代码都运行在模块作用域,不会污染全局作用域;同一个模块可以多次加载,但只会在第一次加载的时候运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果;模块的加载顺序,按照代码的出现顺序是同步加载的;

__dirname代表当前模块文件所在的文件夹路径,__filename代表当前模块文件所在的文件夹路径+文件名;

require(同步加载)基本功能:读取并执行一个JS文件,然后返回该模块的exports对象,如果没有发现指定模块会报错;

模块内的exports:为了方便,node为每个模块提供一个exports变量,其指向module.exports,相当于在模块头部加了这句话: var exports = module.exports,在对外输出时,可以给exports对象添加方法,PS:不能直接赋值(因为这样就切断了exportsmodule.exports的联系);

划重点

  1. 一个文件就是一个模块,模块中所有的代码都运行在模块作用域中。在模块中定义的变量、函数、对象都属于模块,不会污染全局作用域。
  2. 同一个模块可以加载多次,但只会在第一次加载的时候运行一次,然后运行结果就被缓存了,以后再加载就直接读取缓存结果。模块的加载方式是同步顺序加载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值