前端最根底的就是 HTML+CSS+Javascript
。把握了这三门技术就算入门,但也仅仅是入门,当初前端开发的定义曾经远远不止这些。前端小课堂(HTML/CSS/JS
),本着晋升技术水平,打牢基础知识的中心思想,咱们开课啦(每周四)。
Node 利用由模块组成,采纳 CommonJS 模块标准。
每个文件就是一个模块,有本人的作用域。在一个文件外面定义的变量、函数、类,都是公有的,对其余文件不可见。
// 导出 addXmodule.exports.addX = 1;// 导入模块example = require('./example.js');console.log(example.addX)
commonjs 模块标准
特点
- 所有代码运行在模块作用域,不会净化全局作用域。
- 模块能够屡次加载,然而只会在第一次加载时运行一次,而后运行后果就被缓存了,当前再加载,就间接读取缓存后果。要想让模块再次运行,必须革除缓存。
- 模块加载的程序,依照其在代码中呈现的程序。
- CommonJS 标准加载模块是同步的,也就是说,只有加载实现,能力执行前面的操作。
module对象
Node外部提供一个 Module
构建函数。所有模块都是Module
的实例。每个模块外部,都有一个module
对象,代表以后模块。它有以下属性。
module.id
模块的辨认符,通常是带有绝对路径的模块文件名。module.filename
模块的文件名,带有绝对路径。module.loaded
返回一个布尔值,示意模块是否曾经实现加载。module.parent
返回一个对象,示意调用该模块的模块。if (!module.parent) { // ran with `node something.js` app.listen(8088, function() { console.log('app listening on port 8088'); })} else { // used with `require('/.something.js')` module.exports = app;}
module.children
返回一个数组,示意该模块要用到的其余模块。module.exports
示意模块对外输入的值。
AMD 模块标准
CommonJS标准加载模块是同步的,也就是说,只有加载实现,能力执行前面的操作。AMD标准则是非同步加载模块,容许指定回调函数。因为Node.js次要用于服务器编程,模块文件个别都曾经存在于本地硬盘,所以加载起来比拟快,不必思考非同步加载的形式,所以CommonJS标准比拟实用。然而,如果是浏览器环境,要从服务器端加载模块,这时就必须采纳非同步模式,因而浏览器端个别采纳AMD标准。
AMD标准应用define办法定义模块,上面就是一个例子:
define(['package/lib'], function(lib){ function foo(){ lib.log('hello world!'); } return { foo: foo };});
AMD标准容许输入的模块兼容CommonJS标准,这时define
办法须要写成上面这样:
define(function (require, exports, module){ var someModule = require("someModule"); var anotherModule = require("anotherModule"); someModule.doTehAwesome(); anotherModule.doMoarAwesome(); exports.asplode = function (){ someModule.doTehAwesome(); anotherModule.doMoarAwesome(); };});
微信公众号:前端linong
参考文献
- 前端培训目录、前端培训布局、前端培训打算
- https://javascript.ruanyifeng.com/nodejs/module.html