http://blog.csdn.net/chinaycheng/article/details/52559439 其中这个总结很到位: 加载方式 规范 命令 特点 运行时加载 CommonJS/AMD require 社区方案,提供了服务器/浏览器的模块加载方案.非语言层面的标准.只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化. 编译时加载 ESMAScript6+ import 语言规格层面支持模块功能.支持编译时静态分析,便于JS引入宏和类型检验.动态绑定.…
module.exports Node 应用由模块组成,采用 CommonJS 模块规范.根据这个规范,每个文件就是一个模块,有自己的作用域.在这些文件里面定义的变量.函数.类,都是私有的,对外不可见,因此规避掉了作用域污染. 根据 CommonJS 规定,每个模块内部,module 变量代表当前模块,这个变量是一个对象,它的 exports 属性(即 module.exports)是对外的接口.加载某个模块,其实就是加载该模块的 exports 属性. 举例:通过 module.exports…
前言 说到import和require,大家平时开发中一定不少见,尤其是需要前端工程化的项目现在都已经离不开node了,在node环境下这两者都是大量存在的,大体上来说他们都是为了实现JS代码的模块化,那为什么会出现两种方案呢,又有什么不同呢? 模块化的不同解决方案 追根溯源,JS这门脚本语言设计伊始就是没有模块化的,所以早期的全局变量容易造成命名冲突.但随着web项目越来越大,JS的代码量也与日俱增,于是社区就自发约定了几种模块化的方案:requirejs遵循AMD,seajs遵循CMD,no…
OC #import和@class的用法和区别 import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你. 在头文件中, 一般只需要知道被引用的类的名称就可以了. 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称. 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件. 在编译效率方面…
还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: module.exports和exports是属于CommonJS模块规范!(不清楚commonjs?大神请这边逛一逛commonjs规范) export和export default是属于ES6语法(不清楚ES6?大神请这边逛一逛ES6模块)! 同样import和require分别属于ES6和Common…
一. typeof操作符 typeof操作符用于返回正在使用值的类型. // 使用原始值 let mNull = null; let mUndefined = undefined; let mString = 'mazey'; let mNumber = 123; let mBoolean = true; let mFunction = function () { return true; }; // 用构造函数的方式new一个实例 let oString = new String('cherr…
前言 说到import和require,大家平时开发中一定不少见,尤其是需要前端工程化的项目现在都已经离不开node了,在node环境下这两者都是大量存在的,大体上来说他们都是为了实现JS代码的模块化,那为什么会出现两种方案呢,又有什么不同呢? 模块化的不同解决方案 追根溯源,JS这门脚本语言设计伊始就是没有模块化的,所以早期的全局变量容易造成命名冲突.但随着web项目越来越大,JS的代码量也与日俱增,于是社区就自发约定了几种模块化的方案:requirejs遵循AMD,seajs遵循CMD,no…
Javascript:history.go()和history.back()的用法和区别 简单的说就是:go(-1): 返回上一页,原页面表单中的内容会丢失:back(): 返回上一页,原页表表单中的内容会保留. history.go(-1):后退+刷新 history.back():后退 之所以注意到这个区别,是因为不同的浏览器的后退行为也是有区别的,而区别就跟Javascript:history.go()和history.back()的区别类似. chrome和ff浏览器后退页面,会刷新后退…
还在为module.exports.exports.export和export default,import和require区别与联系发愁吗,这一篇基本就够了! 一.首先搞清楚一个基本问题: module.exports和exports是属于CommonJS模块规范!(不清楚commonjs?大神请这边逛一逛commonjs规范) export和export default是属于ES6语法(不清楚ES6?大神请这边逛一逛ES6模块)! 同样import和require分别属于ES6和Common…
node编程中最重要的思想就是模块化,import和require都是被模块化所使用. 遵循规范 require 是 AMD规范引入方式 import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法 调用时间 require是运行时调用,所以require理论上可以运用在代码的任何地方 import是编译时调用,所以必须放在文件开头 本质 require是赋值过程,其实require的结果就是对象.数字.字符串.函数等,再把require的结果赋值给某个变量 import是解构…