深入理解CommonJS!】的更多相关文章

CommonJS 一开始大家都认为JS是辣鸡,没什么用,官方定义的API只能构建基于浏览器的应用程序,CommonJS就按耐不住了,CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白.它的终极目标是提供一个类似Python,Ruby和Java标准库.这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中. 在兼容CommonJS的系统中,你可以使用JavaScript…
参考 : https://blog.csdn.net/xcymorningsun/article/details/52709608 1.CommonJS 模块规范 (同步加载模块): var math = require('math'); // 其中 math 是模块实例 math.add(2,3); 2. AMD 模块规范  (异步加载依赖模块): require(['math'], function (math) { // 其中 math 是模块实例 math.add(2, 3); });…
写在前面: 一个文件就是一个模块. 另外本文中的示例代码需要在node.js环境中方可正常运行,否则将出现错误.事实上ES6已经出现了模块规范,如果使用ES6的模块规范是无需node.js环境的.因此,需要将commonJS规范和ES6的模块规范区分开来. 一.为什么制定CommonJS规范? 在后端,JavaScript的规范远远落后并且有很多缺陷,这使得难以使用JavaScript开发大型应用.比如: 没有模块系统 标准库较少 没有标准接口 缺乏包管理系统 列表内容 CommonJS规范的提…
上面图片是bebugger一个导入的模块,使用vscode可以轻松的看到调用栈,通过断点调试进入断点 Mode函数的原型里面有一个require方法,函数里面有Module._load()加载模块,传入导入的路径地址和当前实例 里面的主要函数有Module._resolveFilename,该方法是解析路径的,把相对路径变成绝对路径的,尝试加载各种文件类型如JS或者JSON等等   Module._cache是模块的缓存对象,如果模块有缓存,则返回导出内容,如果不是则创建一个模块 创建模块,将模…
前端面试总结 1.一些开放性题目 1.自我介绍:除了基本个人信息以外,面试官更想听的是你与众不同的地方和你的优势. 2.项目介绍 3.如何看待前端开发? 4.平时是如何学习前端开发的? 5.未来三到五年的规划是怎样的? position的值, relative和absolute分别是相对于谁进行定位的? § absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 static 的父元素来进行定位. § fixed (老IE不支持)生成绝对定位的元素,通常相对于浏览器窗口或 fram…
一.参考资源 1.前端面试题及答案整理(一) 2.2017年前端面试题整理汇总100题 3.2018最新Web前端经典面试试题及答案 4.[javascript常见面试题]常见前端面试题及答案 5.Web前端常见面试题及答案 6.常见前端面试题及答案(上) 7.web前端面试题及答案 8.web前端经典面试题 9.javascript之面试题精讲 二.面试题汇总 网上搜到一大堆面试题,重复的不少,全部归纳一下,也加上自己的理解 (一).问答类(html/css/js基础) 1. JavaScri…
本章主要内容: 使用Electron的dialog模块实现一个本机打开文件对话框 促进主进程和渲染器进程之间的通信 将功能从主进程暴露给渲染器进程 使用Electron的remote模块从主进程导入功能到渲染器进程 使用webContents模块将信息从主进程发送到呈现器进程,并使用ipcRenderer模块为来自主进程的消息设置监听器 在前一章中,我们为第一个Electron项目打下了基础,这是一个笔记应用程序,它从左窗格中取出Markdown,并在右窗格中将其呈现为HTML.我们设置了主进程…
1.闭包 闭包就是能够读取其他函数内部变量的函数 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域 闭包的特性: 函数内再嵌套函数 内部函数可以引用外层的参数和变量 参数和变量不会被垃圾回收机制回收 说说你对闭包的理解 使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露.在js中,函数即闭包,…
说说你对作用域链的理解 作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到 window 对象即被终止,作用域链向下访问变量是不被允许的. 简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期. JavaScript 原型.原型链 ?  有什么特点? 每个对象都会在其内部初始化⼀个属性,就是 prototype (原型). 当我们访问⼀个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去 prototype…
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该文件,会报错 4.运行test2.js 二.模块简单使用 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Node环境中,一个.js文件就称之为一个模块(module). 模块化的开发的好处:提高代码的可维护性,避免修…