ECMAScript定义了语法
只是定义了语法:变量定义,循环/判断/函数, 原型和原型链…
不可dom操作
没法干一些实际的事情不能处理请求…
javascript
使用es的语法规范+Web API
dom操作+bom操作, 事件绑定 ajax操作等
两者结合才可以完成浏览器端的任何操作
nodejs
es语法规范+ nodejs API
处理http, 处理文件…
完成server端的任何操作
nodejs = ECMAScript + nodejs API
commonjs test
导出一个function
module.exports = add
按顺序同时导出多个function
module.exports = {
add,
mul
}
引用本目录根路径下a.js文件里的一个function
const add = require('./a')
按顺序同时引用多个函数
const {add, mul} = require('./a')
或者
const opts = require('./a')
const add = opts.add
const mul = opts.mul
怎么去引用npm包
const _ = require('lodash')
打印一个数组
const arr = _.concat([1, 2] ,3)
console.log('arr...',arr)
output: arr... [ 1, 2, 3 ]
引用成功
这就是commonjs规范的module化
node应用由模块组成,采用commonjs模块规范.
每一个文件就是一个模块,拥有自己独立的作用域, 变量, 以及函数等, 对其他的模块都不可见.
commonjs规范规定,每个模块内部,模块变量代表当前模块.
这个变量是一个对象, 它的exports属性即(modole.exports)是对外的接口.
加载某个模块其实是加载该模块的module.exports属性.
require方法用于加载模块