如何在节点js中分配全局变量和局部变量

jic*_*cks -3 local httprequest node.js json-web-token

如果我声明一个变量并从一个方法赋值并在该方法外打印,但是它显示未定义。我的代码是

var value;
var getValue = function getValue(){
    value = 5;
};
console.log(value); 
Run Code Online (Sandbox Code Playgroud)

输出,

undefined
Run Code Online (Sandbox Code Playgroud)

我也在尝试全局变量

var getValue = function getValue(){
    global.value = 5;
};
console.log(value);
Run Code Online (Sandbox Code Playgroud)

但显示出一些错误,

console.log(value);
            ^

ReferenceError: value is not defined
    at Object.<anonymous> (~/MyApp/test.js:8:13)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:146:18)
    at node.js:404:3
Run Code Online (Sandbox Code Playgroud)

小智 5

在第一个示例中,在函数中设置了值,但从未调用该函数。因此,值是undefined

在全局示例中,从未声明过值,因此未定义它。

您要做的是调用getValue(),然后将您的值输出到控制台。

第一个例子:

var value;
var getValue = function(){
    value = 5;
};
getValue();
console.log(value); // should return 5
Run Code Online (Sandbox Code Playgroud)

全局示例:

var global = {}; // create an object otherwise you get a 'global is not defined' error
var getValue = function getValue(){
    global.value = 5;
};
getValue();
console.log(global.value); // should return 5
Run Code Online (Sandbox Code Playgroud)