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模块,但是开放部分没有继承。
扫描二维码关注公众号,回复: 9538363 查看本文章

猜你喜欢

转载自www.cnblogs.com/1314bjwg/p/12399047.html