【问题标题】:Global Variable Scope Not recognized in Node.js console全局变量范围在 Node.js 控制台中无法识别
【发布时间】:2016-02-27 07:25:01
【问题描述】:

所以在浏览器(chrome)中,如果我在 js 控制台中运行这段代码,函数调用 foo();将数字 2 打印到控制台。但如果我在 node.js 中运行它,函数调用 foo() 会打印 undefined。为什么会这样?节点是否会自动以“严格模式”运行代码?

function foo() {     
   console.log(this.a); 
} 

var a = 2; 

foo();

【问题讨论】:

  • 我在 Node.js REPL 中试过,它确实打印了 2
  • 啊,我明白了。在 REPL 中它可以工作。但是通过在终端上输入“node foo.js”来运行一个名为 foo.js 的文件会打印 undefined。想知道为什么会这样
  • 回答它。谢谢 czheo!

标签: javascript node.js scope console strict


【解决方案1】:

document中所述

Node.js 模块中的某些内容将是该模块的本地内容。

所以,它会有所不同。

你也可以试试:

function foo() {     
   console.log(this.a); 
} 
global.a = 2; 

foo();

【讨论】:

    猜你喜欢
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多