如何查看我的 node.js 变量已经启动?

How can I see my node.js variables already initiated?

我是 node.js 的新手,我想知道:由于创建的任何变量的范围都设置为某种全局范围,是否有任何方法可以列出哪些变量名称已经存在启动了吗?

node.js 变量一般不是全局的。默认情况下,在模块顶层声明的任何变量仅在模块范围内,不会与任何其他模块冲突或干扰。

只有显式分配给 global 对象的变量实际上是全局可用的。

global.myVar = "foo";

所有其他都包含在较小的范围内 - 模块范围或模块内的函数范围。

所以,如果你有这样的模块:

var x = 3;

module.exports = function() {
    return x;
}

那么,变量x根本就不是全局变量。它包含在本模块的范围内。它不会与任何其他同名模块中的变量冲突。


因为模块中的顶层变量实际上是模块函数包装器中的局部变量,并且 Javascript 不提供任何在函数范围内迭代局部变量的方法,所以无法迭代所有顶层变量模块范围内的级别变量。

如果您希望能够在某些上下文中迭代所有变量,那么您可以使用不同的格式并将它们作为对象的属性。

var obj = {};
obj.x = 3;
obj.y = 5;

// list all enumerable properties of obj
for (var prop in obj) {
    console.log("property: " + prop + " = ", + obj[prop]);
}

仅供参考,您还可以使用像节点检查器这样的调试器来查看在任何给定范围内声明的所有变量。您在该范围内设置一个断点,然后查看该断点处的局部变量。