模块化介绍、node.js

175 阅读3分钟
模块化:开发者模拟java中的包功能,来隔离、组织负责的javascript代码,我们称之为模块化
    一个模块化就是实现特定功能的文件,有了模块,我们可以更方便的是用别人的代码,想要什么功能就加载什么模块
    为了不污染顶级变量,需要把模块进行封装
    var mymodule={var1:1,var2:2,
        fun1:function(){},fun2:function(){}
    }
    我们引用模块时就直接写mymodule.fun2();
    以上代码不会污染顶级变量,也是模块化的基础
    
common.js(cmd)
    第一个模块化规范是有服务器端定义的
    common.js规范是由onde.js发扬光大的
    定义模块:
        根据common.js规范,一个单独的文件就是一个模块,每一个模块都是一个独立的作用域,也就是说,该模块
    内部定义的变量,无法被其他模块读取
        模块出口只有一个
    
AMD即asynchronous MOdule Definition,中文名为:异步模块定义,他是一个在浏览器端模块开发的规范
    由于不是原生js支持,使用AMD规范进行页面开发需要对应的函数库·require.js
    require.js解决的问题:
        多个js文件可以有依赖关系,被依赖的文件需要早于依赖他的文件加载到浏览器
        js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应的时间越长

CMDCommon Module Definition通过模块定义 
    mcd是国内发展的,cmd有个浏览器实现Sea.js
    sea.js要解决的问题和require.js一样,只不过在模块定义方式和模块加载时机上有所不同

node.js
    javascript是一种运行在浏览器的脚本,他简单、轻巧、易于编辑,这种脚本通常用于浏览器的前端编程,是一位
开发者Ryan有一天发现这种前端的脚本语言可以运行在服务器上的时候,一场席卷全球的风暴就开始了
    Node.js是一种基于Chrome Javascript运行时建立的平台,用于方便的搭建响应速度快、易于拓展的网络应用。
Node.js使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用
    Node是一个javascript运行环境。实际上它是对Google V8引擎进行了封装,V8引擎执行了javascript的速度非常快、
性能非常好。Node对一些特殊用例进行了优化,提供了替代API,使得V8在非浏览器环境下运行的更好

nodejs的优点
    RESTful API
    单线程
    Node.js可以在不新增额外线程的情况下,依然可以对任务进行并行处理。Nodejs是单线程的。他通过事件轮询
(event loop)来实现并行操作,对此,我们应该充分利用这一点,尽可能的去避免阻塞操作,取而代之,多使用非阻塞事件
    非阻塞IO
    V8虚拟机
    事件驱动
    
node功能:
    支持js运行
        用v8引擎
        有console面板
        服务器
            通过web服务器运行到浏览器上
            网络