一、 js的模块化
  什么是模块化:
    模块化的概念最早是后台,随着ajax技术的兴起,js在编程中所占的地位越来越高,同时js的文件也相应的越来越多。为了方便文件的管理和更新,提出了js文件的模块 化,将同一类型的功能组合在一起

二、 模块化的演变过程:
  1. 普通的方法的书写格式。
  问题:多个人开发可能会造成变量污染,为了解决这个问题引出2
  2. 使用对象的作用域来解决变量污染问题
  问题:如果在这个对象中有一些属性不希望被外界访问到,
  不能实现这个效果,为了解决这个问题,引出3
  3. 使用函数的方式来私有化变量
  问题:每次使用的时候都需要重新创建对象,为了解决这个问题引出了4
  4. 使用函数的自执行模式来代替 new 操作
  问题:没有问题,但是要考虑到扩展性,引出了5
  5.使用一个自执行函数在原来的对象上扩展方法
  注意点:将来自执行的时候要进行传参,这个参数需要做一个处理(window.calc || {})
  6如果将来要用到第三方模块,我们需要将模块名写在自执行函数的参数上。

三、 第三方模块化管理工具:
1. seajs:
  什么seajs:第三方模块化管理工具
  学习网址:seajs.org
  特点:
    1) seajs 遵循CMD 规范
    2) node.js一般书写模块化代码
    3) 依赖的自动加载、配置的简洁清晰
  作用步骤:
  1) 要定义一个单独的模块:
  关键字: define
  

define(function(require,exports,module){
     //定义的代码块
})    

  2) 要在模块中返回一些方法/属性/对象
  关键字:exports/module.exports

  3) 如果要引用一个第三方模块:
  关键字:require
  

var add = require('./add.js');

  注意点:将来通过require关键字引用了其它模块化以后,会返回引用模块化的一个对象:exports/module.exports
  4) 使用seajs 定义好的模块
  关键字:seajs
  

seajs.use('./calc/calc.js',function(obj){
    //注意:回调函数中的obj对象指向中是当前引用的模块calc.js模块中的exports/module.exports
      //使用加法
      console.log(obj.add.add(,));
     //使用减法
      console.log(obj.sub.sub(,));
})

  注意:回调函数中的参数就是当前引用模块的exports对象

2. seajs遵循的规范:CMD规范
CMD规范的作用:规范明确了模块的基本书写格式和基本交互规则
a.cmd规定在define中可以传入方法,对象,字符串
b.cmd规定require用于接收第三方包提供的接口
  require在使用的时候要注意以下几点:
    1.0拼写正确
    2.0不要修改
    3.0使用直接量
c.cmd规定exports用来向外提供模块接口
d.cmd规定module.exports用于向外提供模块的接口
  遵守CMD规范的模块都有一个特点:按需要加载特点(懒加载)
3.require 的使用
  简单使用:基本与seajs一样
  require 使用的AMD规范。
  CMD与AMD基本相同,最大区别是CMD是懒加载,AMD是预加载

补充:

(1)requirejs与seajs使用基本相同 
    有两点要注意:1)seajs使用模块时用方法Seajs.use,而requirejs直接用require关键字
    2)seajs只使用一个模块时可以只传一入字符串,但是require必须是一个数组
(2)懒加载与预加载

预加载模式:当第一次访问时将所有的文件加载出来
       优点:第一次访问完成以后,再次访问的速度会很快
缺点:第一次加载页面要等待很久

懒加载模式:使用的时候才会加载对应的文件
优点:第一次访问速度相对快点
缺点:再访问其它新的模块是速度会变慢
 

nodejs的第一天学习笔记的更多相关文章

  1. [未完成]WebService学习第一天学习笔记

    [未完成]WebService学习第一天学习笔记[未完成]WebService学习第一天学习笔记

  2. 20165326 java第一周学习笔记

    第一周学习笔记 一.理论视频学习 1.Java的特点:简单.面向对象.平台无关 2.Java的开发步骤&简单的应用程序: 文本编辑器写入代码 命名类名.java,文件类型所有文件,编码ANSI ...

  3. 《Linux内核分析》第一周学习笔记

    <Linux内核分析>第一周学习笔记 计算机是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/c ...

  4. linux内核分析第一周学习笔记

    linux内核分析第一周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...

  5. Spring实战第一章学习笔记

    Spring实战第一章学习笔记 Java开发的简化 为了降低Java开发的复杂性,Spring采取了以下四种策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面 ...

  6. Nodejs --我自己的学习笔记

    对于Nodejs,相信客官并不陌生,网上却已众说纷纭,有人说是一个平台,有人说是服务器JavaScript,有人说一个框架… 之前亦有过研究,多怀可远观而不可亵玩也.高效率,I/O操作,异步编程,以及 ...

  7. linux就该这么学 第一天学习笔记

    题外话 在每天的网上冲浪中,一次无意间的点击,发现了linux就该这么学的网站,然后就看了一晚上,当时还是学生的我特别想要参加培训,可是碍于眼前的经济状况,只得将这个想法深深的藏在了心里,并加了一下网 ...

  8. nodejs的socket.io学习笔记

    socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...

  9. Day1 《机器学习》第一章学习笔记

    <机器学习>这本书算是很好的一本了解机器学习知识的一本入门书籍吧,是南京大学周志华老师所著的鸿篇大作,很早就听闻周老师大名了,算是国内机器学习领域少数的大牛了吧,刚好研究生做这个方向相关的 ...

随机推荐

  1. 明白何谓Margin Collapse

    不同于其他很多属性,盒模型中垂直方向上的Margin会在相遇时发生崩塌,也就是说当某个元素的底部Margin与另一个元素的顶部Margin相邻时,只有二者中的较大值会被保留下来,可以从下面这个简单的例 ...

  2. 猿题库 iOS 客户端架构设计-唐巧

    序 猿题库是一个拥有数千万用户的创业公司,从20013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代. 在如此快速的开发过程中,如何保证代码 ...

  3. 物理主机win 7系统迁移至VMware ESXI服务器

    一.实验环境如下图所示: 二.实验要求(如上图所示) 通过 计算机B  (IP:10.8.9.18) 将 计算机A (IP:10.8.9.155) 迁移到 服务器(IP:10.8.9.161) 三.实 ...

  4. git制作增量包用于更新代码

    1 先找到指定的开始提交id,比如 05104e3475f63e1e49fbfcbd424a4a3801b95645 2 找到结束的提交id,比如 a0eb9bc6d4e1801062877fd435 ...

  5. C++之路进阶——codevs2439(降雨量)

    2439 降雨量 2007年省队选拔赛四川  时间限制: 1 s  空间限制: 64000 KB  题目等级 : 大师 Master       题目描述 Description 我们常常会说这样的话 ...

  6. Grunt一辈子的好基友:yeoman

    yeoman是什么 yeoman主要包含了三个工具:yo.grunt.bower.我们先看下这三个工具分别是做什么的: yo:脚手架工具,主要作用是创建项目骨架(跟grunt-init有点像). gr ...

  7. Android APK反编译easy 详解

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

  8. 删除已经配置的类库和移除CocoaPods[转]

    转自:http://blog.csdn.net/jymn_chen/article/details/19213601 引言 在使用CocoaPods(一)为项目配置第三方类库我们使用CocoaPods ...

  9. YTU 2345: 后序遍历二叉树

    原文链接:https://www.dreamwings.cn/ytu2345/2611.html 2345: 后序遍历二叉树 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决:  ...

  10. Java 基础知识 练习

    1.在DOS命令下输入:java Hello出现以下结果:Bad command or the file name可能是什么原因? (错误的命令或文件名) 输入的命令不存在,或者不在指定的路径中 2. ...