【03】node 之 作用域

1.什么是作用域

 

作用域:规定了一个变量和函数可使用的范围,作用域分为两种:全局作用域、局部作用域(函数作用域)

2.NodeJS作用域

NodeJs中一个文件就是一个模块,模块中使用var定义的变量为局部作用域,只能在该模块中使用,因为模块在使用时会把NodeJs编译为一个函数,那么使用var的定义的变量,理所当然的只能在这个模块(函数)中使用。

 

比如:某模块我们编写了以下代码 b.js文件

var b = 10;
console.log(arguments.callee.toString()); 

 a.js模块引入b.js

var b = require("./b"); // 导入b模块中exports对象给变量b.
console.log("a模块中代码");

 

NodeJs会在执行之前,编译这个模块为:node a.js
   
 function (exports, require, module, __filename, __dirname) { 

       var a = 10;// a为局部变量
      console.log(arguments.callee.toString()); //可以看见最终b.js内容
    }

 

 3.  NodeJS全局作用域和全局对象

NodeJs定义一个变量,如果不是使用var,而直接给变量赋值,那么就是一个全局变量,一个全局变量可以被其他模块所使用。

   username = “123123”;

NodeJs中的全局对象为global,所以通过给这个对象上面添加属性,也是全局变量。

global.address = “成都源码时代”;

 

注意:尽量少使用全局变量,避免变量冲突。

 

posted on 2017-07-06 15:03  yezixuan  阅读(350)  评论(0编辑  收藏  举报