环境:

Node应用由模块组成,采用CommonJS模块规范。

node的全局对象是global,没有window这个对象。

process表示当前执行的进程,挂在global之下。

CommonJS

每个文件是一个模块,有自己的作用域。执行时,我们写的代码会被自动包裹在一个function里。

在模块内部module变量代表模块本身。

module.exports属性代表模块对外接口。

定义一个模块就是创建一个文件。

想在模块内部输出一些属性的话,需要把属性放到module.exports中。

require规则

/表示绝对路径,./表示相对与当前文件的。

只是js,json,node扩展名,如果我们不写模块的扩展名,会依次尝试,都找不到就报错。

不写路径就认为时build-in模块或者各级node-modules内的第三方模块。

require的特性

module被加载的时候会执行,然后缓存下来。 不会重复加载,即使require了多次。

某个模块出现循环加载的时候,只输出已执行的部分,还未执行的部分不会输出。

//05a.js
module.exports.test = 'A'
const modB = require('./05b')
console.log('modA:',modB.test)
module.exports.test = 'AA' //05b.js
module.exports.test = 'B'
const modA = require('./05a')
console.log('modB:',modA.test)
module.exports.test = 'BB' //05.js
const modA = require('./05a')
const modB = require('./05b') //output:
modB:A
modA:BB

global全局变量下的一些属性

CommonJS, process, console, Buffer, timer

process常用属性

argv:数组

argv0:argv的第0项

execArgv:数组

execPath:argv的第1个参数

cwd():返回当前路径

nextTick()插到队尾

最新文章

  1. 关于有默认值的字段在用EF做插入操作时的思考
  2. sublime 函数跳转插件 — ctags 安装和使用
  3. 关于easyui的窗口和tab页面不执行js说明
  4. C#多线程之二:ManualResetEvent和AutoResetEvent
  5. Ubuntu 14.10 下grep命令详解
  6. JavaScript中伪协议 javascript:研究
  7. 关于IE8中使用Jquery load方法无法正常加载页面
  8. Spring之SpringMVC的RequestToViewNameTranslator(源码)分析
  9. Java基础学习 —— 对象的克隆
  10. Spark算子--first、count、reduce、collect、lookup
  11. Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
  12. windows cmd 查找/关闭端口
  13. [工具配置]使用requirejs模块化开发多页面一个入口js的使用方式
  14. SWOT分析法——进行项目管理的高效方法
  15. java学习之路--面试之并发基础
  16. CSS: Position Introduction.
  17. cakePHP模型内置回调函数afterFind()的使用。
  18. git命令小记
  19. 【LeetCode题解】142_环形链表2(Linked-List-Cycle-II)
  20. 使用rollup 开发专业js library

热门文章

  1. 使用mui框架----移动端页面在所有屏幕下自适应
  2. Windows核心编程&作业
  3. The POM for * is invalid
  4. Linux指令--wget
  5. Python杂项
  6. 【转】IGS相关
  7. Java基础知识(一)
  8. MySQL--pt-osc工具学习
  9. plus、max、Pro、Edge
  10. 通过 ['1', '2', '3'].map(parseInt) 学习 map 和 parseInt 函数