美文网首页
Node中的JavaScript

Node中的JavaScript

作者: 好吃的野菜 | 来源:发表于2018-01-10 11:11 被阅读6次

    global 对象

    • 在浏览器中,全局对象指的是window对象,在window对象上定义的任何内容都可以被全局访问到;
    • 在Node中,有两个类似但却各自代表不同含义的对象;
      global 对象:和window一样,任何global对象上的属性都可以被全局访问到;
      process对象:所有全局执行上下文中的内容都在process对象中。

    模块系统

    • 在浏览器中,直接通过script标签引入第三方库,会导致对全局命名空间的污染命名冲突问题
    • 在Node中,通过require、export、module三个关键字引入了模块系统;
    • 在Node中,通过require关键字加载模块,加载模块查找顺序:核心模块>按路径加载模块>node_modules向上递归;
    • require关键字按路径加载模块时允许加载模块文件不带后缀名,会依次查找.js、.json、.node为后缀名的文件;
    • export = module.export = {} 意思是export关键字是对module.export的引用,默认情况下是一个对象,但可以对其进行重写,将类的构造器函数暴露出来:
    # person.js 
    module.export = Person;
    
    function Person(name) {
        this.name = name;
    }
    
    Person.prototype.talk = function() {
        console.log(‘我的名字是’ + this.name);
    }
    
    # index.js
    var Person = require(‘./person’);
    var john = new Person(‘john’);
    john.talk();
    
    这样,在index文件中,不再导入的是对象,而是一个函数!
    

    事件

    • Node.js最重要的概念之一就是事件驱动,最基础的API是EventEmitter;
    • EventEmitter API定义了on、emit、once以及removeListener方法,以process.EventEmitter形式暴露出来;
    # index.js
    var EventEmitter = require(‘event’).EventEmitter;
    var a = new EventEmitter();
    
    a.on(‘event’, function() {
        console.log(‘event called’);
    });
    
    a.emit(‘event’);
    

    buffer

    • Node.js中增加了对二进制数据的处理,buffer是一个表示固定内存分配的全局对象,可以方便的对数据进行编码转换。

    相关文章

      网友评论

          本文标题:Node中的JavaScript

          本文链接:https://www.haomeiwen.com/subject/fzznnxtx.html