• node.js的基本语法


    一:对象和模块作用域:

    (一):global的概念:

    1:在之前使用JavaScript的过程中,在浏览器中默认声明的变量、函数等都属于全局对象Window。全局对象中的所有变量和函数在全局作用域内都是有效的。

    2:在Node.js中,默认就是模块化的,默认声明的变量、函数都属于当前文件模块,都是私有的,只在当前模块作用域内可以使用,

    3:值,可以应用全局对象global。Node.js中的global对象类似于浏览器中的Window对象,用于定义全局命名空间,所有全局变量(除了global本身以外)都是global对象的属性,在实际使用中可以省略global。

    var foo = 23;//在之前浏览器中默认声明的变量和函数等都是全局变量,而在node.js中则相反.
    console.log(foo);
    console.log(global.foo);//测试foo是否为全局变量,记住所有的全局变量都是global对象的属性,类似也浏览器中的window对象。
    global.foo = foo;
    console.log("输出global对象的foo属性的值"+global.foo);//global对象能够实现文件模块与文件模块之间的数据共享。
    //输出

    23
    undefined
    输出global对象的foo属性的值23

    (二):使用require()、exports、module.exports来实现模块之间内容的共享。

    //被加载模块.js
    var s = 23;
    exports.s = s;//使用exports向外开放模块变量,
    exports.name = "deng";
    module.exports.age = 100; //使用module.exports向外开放变量age
    exports.sayHello = function hello()
    {
        console.log("hello wan qian.");
        console.log("and田丹");
    };
    var gl = require('./global');//用来测试global对象的属性是否能过实现模块内容之间的共享.
    console.log(gl);//{ name: 'li' }
    输出:

    23
    undefined
    输出global对象的foo属性的值23
    { name: 'li' }

    【注意】:global.js中的程序被执行了,唯独被使用export开放的变量,以json的格式返回到gl中,

    global.js

    //global.js
    var foo = 23;//在之前浏览器中默认声明的变量和函数等都是全局变量,而在node.js中则相反.
    console.log(foo);
    console.log(global.foo);//测试foo是否为全局变量,记住所有的全局变量都是global对象的属性,类似也浏览器中的window对象。
    global.foo = foo;
    console.log("输出global对象的foo属性的值"+global.foo);
    exports.name = "li";

    发起加载模块.js

    //发起加载模块.js
    var my_modul = require("./被加载模块");//require函数返回的是一个被加载模块的对象.
    console.log(my_modul); //{ s: 23, name: 'deng', age: 100, sayHello: [Function: hello] }
    console.log("my_modul.s="+my_modul.s);//23
    console.log("my_modul.name="+my_modul.name);//deng
    
    //输出
    23
    undefined
    输出global对象的foo属性的值23
    { name: 'li' }
    { s: 23, name: 'deng', age: 100, sayHello: [Function: hello] }
    my_modul.s=23
    my_modul.name=deng
    【注意】:在发起加载模块中也运行了global模块中的代码,这是因为他加载的模块(即被加载的模块)加载了global.js模块,但是开放部分没有继承。
  • 相关阅读:
    build-your-own-react 注释版
    react hooks 理念之代数效应
    用Robot Framework+python来测试基于socket通讯的C/S系统(网络游戏)
    使用svndumpfilter exclude来清理svn库的废弃文件实现差别备份
    使用SonarQube+Eclipse来分析python代码
    是该写点什么了
    EventLoop
    Promise 学习
    ES6 模块化导入导出
    Vue实现对象列表根据某一字段排序
  • 原文地址:https://www.cnblogs.com/1314bjwg/p/12399047.html
Copyright © 2020-2023  润新知