首页 > 解决方案 > 全局变量不起作用 - 节点 14.15.3

问题描述

var myVariable = 3;
console.log('global', globalThis.myVariable);

我尝试使用 运行代码node file.js,但不断得到结果:

全局未定义

有人可以向我解释这里到底发生了什么吗?

标签: javascriptnode.js

解决方案


我从节点文档中找到了这个:

在浏览器中,顶级作用域是全局作用域。这意味着在浏览器 var 中某些东西将定义一个新的全局变量。在 Node.js 中这是不同的。顶级范围不是全局范围;var Node.js 模块中的某些内容将是该模块的本地内容。

全局对象

在 JavaScript 中,总是定义了一个全局对象。在 Web 浏览器中,当脚本创建使用 var 关键字定义的全局变量时,它们被创建为全局对象的成员。(在 Node.js 中,情况并非如此。)

这意味着当您声明var myVariable = 3;它不进入节点global对象时,您可以尝试将global对象打印出来。


推荐阅读