【发布时间】: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