A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明知梦已醒 初级黑马   /  2019-6-27 15:03  /  1060 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

js解析和异步
js一直是单线程的 , 宿主环境(浏览器node环境)是多线程 , 宿主环境 开启子线程  
js  无限去执行从任务队列提取任务放到主线程执行
commonjs规范
require
module
exports
全局作用域 和 模块作用域(私有作用域)
全局作用域 : global  
模块作用域(私有作用域): 每一个单独的js文件是一个单独的模块, 每个模块定义的变量或者方法,默认只能在自己的模块中使用,即便是别的js文件请求了当前的模块 ,也是无法访问到的
虽然使用global.属性  global.方法  在别的模块中也可以访问到,  不推荐此方式  ,   变量污染
模块单独暴露成员exports和module.exports
exports 和 module.exports 是一个对象  可以直接往exports上挂载成员(属性,方法)  在别的模块中导入当前的模块,就可以访问到当前模块的属性和方法了
exports 和   module.exports指向的是同一个空对象   它们俩全等的
两者都可以向外暴露成员
exports  和  module.exports  同时向外暴露成员     始终读取的是 module.exports  向外暴露的成员  以后开发使用 module.exports向外暴露成员
模块三大分类
核心模块  node自带的模块  fs path  http
第三方模块  bootstrap  jquery  
用户自定义模块 js文件
自定义calc包
打开包的png 图
package.json    ||  npm init -y   创建出一个package.json 文件
创建  lib  test  bin  等文件夹
在lib中创建自己的模块   注意各个模块的暴露
// 加法模块
function add(x, y) {
   return x + y
}
module.exports = add
-------
// 减法模块
function sub(x, y) {
   return x - y
}
module.exports = sub
------------------------
// 乘法模块
function mut(x, y) {
   return x * y
}
---------------------------------
module.exports = mut
// 除法模块
function div(x, y) {
   return x / y
}
module.exports = div
配置package.json中的 main 属性的 对应的主入口文件
{
   "name": "calc",
   "version": "1.0.0",
   "description": "",
   "main": "./lib/index.js" //主入口文件路径
}
创建主入口文件  导入 自定义模块并在主入口文件中暴露导入的自定义模块  
const add = require('./add.js')
const sub = require('./sub.js')
const mut = require('./mut.js')
const div = require('./div.js')
// 暴露
module.exports = {
   add,
   sub,
   mut,
   div
}
使用方式
使用路径直接使用
如果要require(包名) 需要将包放到 node_modules 文件夹中 即可

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马