我们来说全局配置,我们知道导入require.js之后会设置data-main属性来执行入口文件,然后再入口文件中进行require的配置。...文件中,导入此文件即可,代码如下: main.js:入口文件 require(['/js/lib/config.js'], function () { require(['jquery', 'module1...配置非AMD规范JS: 我们知道要配置模块,js文件必须要使用AMD规范来编写,就是加上define函数,主动返回函数等操作。...但是我们以前编写的js,肯定没有这些功能,修改起来又比较麻烦,所以需要配置非AMD规范的JS。...规范的js,我们先在paths中把路径,名称配置好,然后再shim中配置对外返回的函数和变量等,比如上面就返回normal.js中的render和initial两个函数。
AMD规范只定义了一个函数 "define",它是全局变量。模块通过 define 函数定义在闭包中,格式如下: define(id?: String, dependencies?...AMD的模块名规范是CommonJS模块名规范的超集。引用如下: 模块名是由一个或多个单词以正斜杠为分隔符拼接成的字符串 单词须为驼峰形式,或者".",".."...模块名不允许文件扩展名的形式,如".js" 模块名可以为 "相对的" 或 "顶级的"。如果首字符为"."或".."...AMD规范定义了三种特殊的依赖关键字。如果"require","exports", 或 "module"出现在依赖列表中,参数应该按照CommonJS模块规范自由变量去解析。...文件以后,使用时require的模块依赖就是该js文件的名字
提示 由于CommonJS和AMD都十分流行,但似乎缺少一个统一的规范。于是,UMD(通用模块规范)出现了,它可以同时支持这两种风格。...虽然这个模式的写法比较难看,但是,它同时兼容了AMD和CommonJS,而且还支持老式的全局变量规范。 什么是JS模块化 先想一想,为什么模块很重要?...这就是AMD规范诞生的背景。 AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。...目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。本系列的第三部分,将通过介绍require.js,进一步讲解AMD的用法,以及如何将模块化编程投入实战。...jquery.js,相当于默认配置了; 依赖非AMD规范的模块如果没用define(...)
JavaScript 中的模块,本质上都是为了解决 Js 的作用域问题而定义的模块形式 AMD 浏览器环境 异步 AMD (The Asynchronous Module Definition) 规范的格式和栗子如下...// foobar.js function foobar(){ this.foo = function(){ console.log('Hello foo...CommonJS 和 AMD 模块,都只能在运行时确定这些东西。比如,CommonJS 模块就是对象,输入时必须查找对象属性。...export default 导出的前提下) // import-default.js import customName from '....参考 : https://github.com/amdjs/amdjs-api/blob/master/AMD.md http://es6.ruanyifeng.com/#docs/module
文件函数型 所谓文件函数型是指所有的js的脚本都是中都是一个一个的方法,没有任何的封装,这也是传统的项目中常用的方法。...上面的方法解决的方法被覆盖的问题,但没有解决模块化依赖的问题,这个问题的解决就要靠我们下面要说的AMD的规范。...AMD模块开发规范 上面模块话的开发虽然解决的js的方法的覆盖问题,但js依赖的问题仍然存在,解决这个问题的终极方案就是AMD规范。...AMD规范就是其中比较著名一个,全称是Asynchronous Module Definition,即异步模块加载机制。...从它的规范描述页面看,AMD很短也很简单,但它却完整描述了模块的定义,依赖关系,引用关系以及加载机制。
规范,它的作者就是AMD规范的创始人 James Burke。...所以说RequireJS是对AMD规范的阐述一点也不为过。 ...js'> 那么scripts下的main.js则是指定的主代码脚本文件...,所有的依赖模块代码文件都将从该文件开始异步加载进入执行。...因为像 requireJS 其并不是只是纯粹的AMD固有思想,其也是有CMD规范的思想,只不过是推荐 AMD规范方式而已, seaJS也是一样。
一、加载underscore、backbone 理论上,require.js加载的模块,必须是按照AMD规范、用define()函数定义的模块。,require.js是否能够加载非规范的模块呢?...举例来说,underscore和backbone这两个库,都没有采用AMD规范编写。如果要加载它们的话,必须先定义它们的特征。shim属性,专门用来配置不兼容的模块。...: { deps: ['underscore', 'jquery'], exports: 'Backbone' } } }); 二、加载自定义模块 /* main.js...myCustomMod"], function(myCustomMod) { console.log(myCustomMod.max(1, 2, 3)); }) /* myCustomMod.js...return Math.max.apply(Math, [].slice.call(arguments)); } 注意:require.config配置shim中exports的值,一定要与相关文件中暴露出全局变量名称一致
AMD是”Asynchronous Module Definition”的缩写,意思是”异步模块定义”。 模块定义 define(id?, dependencies?...x + y; } }); 代码示例4:定义一个兼容Modules/Wrappings模块化规范的匿名模块...AMD规范兼容Modules/Wrappings。...verb(); } }); 模块加载 require([module], callback) AMD...模块化规范中使用全局或局部的require函数实现加载一个或多个模块,所有模块加载完成之后的回调函数。
请确保在项目Readme文件或wiki中记录这些内容。
前言 在js的代码开发中,我简单的总结出了以下规则,后面会陆续补充并且对规范进行分类。...js代码建议保存到后缀名.js的文件中 js代码不建议放在html中,原因有:不能被缓存,会增大网页文件的大小,可维护性不高,会影响页面的加载。...缩进,建议使用空格,因为各个环境对tab的解释不通,而空格可以在压缩文件中统一被压缩掉。 每行控制在80个字符以内,如果超过请折行。...js吧任何表达式都当一条简单语句,会导致一些隐性的错误。如果自己没加分号,那么js解释器会自动添加分号,按照自己能读懂的断句。 9.2 复合语句 也称为语句块,被包在大括号内部。...比如对象 var obj={} ;var arr=[] eval eval是最容易混乱使用的js函数,他可以执行内部入参的js函数或者表达式,可以直接解析变量。不建议使用 。
js类与构造函数参考原文献 9..../AirbnbStyleGuide'; // good // filename es6.js import { es6 } from '....const 定义的常量) 9.5、如果一个模块只有单一的导出,应当首选 exprot default {}, 而不是 export const foo = {} 9.6、应该将所有的导出放置文件最顶部...= b = c = 1; // good let a = 1; let b = a; let c = a; 11.6、避免使用 ++ 或 –,使用 += 或 -= 代替(eslint规范...空格(具体遵循eslint规范) 14.1、始终使用 2 个空格作为块之间的间距 14.2、在前括号【{ }, ( )】之前放置1个空格 // bad function test(){ console.log
如果在文件的第一个文档块中使用这个标记,则指定该文档块的余下部分将用来提供这个文件的概述 @class 提供类的有关信息,用在构造函数的文档中 @constructor 明确一个函数是某个类的构造函数
考虑到Javascript模块现在还没有官方规范,这一点就更重要了。 目前,通行的Javascript模块规范共有两种:CommonJS和AMD。我主要介绍AMD,但是要先从CommonJS讲起。...node.js的模块系统,就是参照CommonJS规范实现的。在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。 ...这就是AMD规范诞生的背景。 十、AMD AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。...所以很显然,AMD比较适合浏览器环境。 目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。...本系列的第三部分,将通过介绍require.js,进一步讲解AMD的用法,以及如何将模块化编程投入实战。 (完)
考虑到Javascript模块现在还没有官方规范,这一点就更重要了。 目前,通行的Javascript模块规范共有两种:CommonJS和AMD。...node.js的模块系统,就是参照CommonJS规范实现的。在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。 ...这就是AMD规范诞生的背景。 十、AMD AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。...所以很显然,AMD比较适合浏览器环境。 目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。...本系列的第三部分,将通过介绍require.js,进一步讲解AMD的用法,以及如何将模块化编程投入实战。 (完)
EMCAScript规范 javascript语言实现,ES6规范(使用babel编译器将es6转换为es5,webpack只支持部分es6): import "jquery"; /...default只有一个,export可以有多个 commonjs规范 nodejs语言实现 require("module"); require(".....require global AMD(异步加载模块,npm中requirejs模块) require同步==》异步require([module], callback); //由require.js...和curl.js实现 网页js的异步加载 js/require.js” defer async=“true” > 内部函数 require.config({参数})...a.dosomething(); b.dosomething(); }); js模块化方案 seajs、requirejs(在线编译,amd和cmd编译器在浏览器中) webpack
male', age: 25 } 只对非法标识符的属性使用引号,eslint: quote-props 原因:因为通常来说我们认为这样主观上会更容易阅读,这样会带来代码高亮上的提升,同时也更容易被主流 JS...如果你发现函数定义既庞大又复杂以至于不能理解文件的其他部分,或许你应该将它拆分成模块!...bar.css' // good import fooSass from 'foo.scss' import barCss from 'bar.css' 迭代器 建议使用 JS 更高优先级的函数代替...时等于 false, 否则是 true if ([0] && []) { // true // 数组(即使是空数组)也是对象,对象等于true } 分号 Standard 的规范是不使用分号的...,我建议统一使用分号,代码更加清晰 关于应不应该使用分号的讨论有很多,好的 JS 程序员应该清楚场景下是一定要加分号的,相信你也是名好的开发者。
eg:studentInfo、userInfo、productInfo 文件资源命名 文件名不得含有空格 文件名建议只使用小写字母,不使用大写字母。...( 为了醒目,某些说明文件的文件名,可以使用大写字母,比如README、LICENSE。 ) 文件名包含多个单词时,单词之间建议使用半角的连词线 ( - ) 分隔。...脚本加载 说到js和css的位置,大家应该都知道js放在下面,css放在上面。...在此之外,为使得它们之间的联系尽可能的小,在文档和模板中也尽量少地引入样式和脚本文件。...'valid' : 'invalid' ---- JSHint 在js规范中,有很多规范都是样式上的规范而不是逻辑上的规范,比如尽量使用=== 而不是==,我们可以使用JSHint或者JSLint,Javascript
一、CommonJS 主要是用于服务器端的规范,比如目前的nodeJS. 根据CommonJS规范,一个单独的文件就是一个模块。...每一个模块都是一个单独的作用域,也就是说,在一个文件定义的变量(还包括函数和类),都是私有的,对其他文件是不可见的。...像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。...适用AMD规范适用define方法定义模块。...RequireJS 遵循 AMD(异步模块定义)规范,Sea.js 遵循 CMD (通用模块定义)规范。规范的不同,导致了两者 API 不同。
前言 下面这几点将工作中所踩的一些坑简单整理了一下,团队几个人开发,一些默契就比较重要,可以提高开发效率和代码的可读性 命名,编码和注释 命名 A.文件夹命名:文件夹、文件的命名与命名空间应能代表代码功能...C.Js代码注释console.log和debugger再提交 D.重要函数或者类等都要添加头描述 ? 字符串拼接 应使用数组保存字符串片段,使用时调用join方法。...因为是循环执行完成函数调用才会执行 G.Return后面不要写代码,并且不封装成if…then…else… 导入和导出 使用import和export,只能位于代码顶部和顶部,如果代码中部需要按需导入文件使用
最近对于ES6中变量命名关于变量是不是应该大写,特意再重新梳理了一遍基础,特总结如下: js变量命名规范 变量名区分大小写(y 和 Y 是不同的变量) 变量名包含字母、数字、美元符号()和下划线
领取专属 10元无门槛券
手把手带您无忧上云