使用 globalThis/window 访问全局常量

问题描述

我只是尝试使用 var、const 和不使用 any 进行全局声明,并注意到虽然可以使用 globalThis 访问 var 和 without,但 const 无法访问。

aaa = "aaa";
var bbb = "bbb";
const ccc = "ccc";
console.log(globalThis.aaa,globalThis.bbb,globalThis.ccc); // logs: aaa bbb undefined

我的问题是,有没有办法使用 window 或 globalThis 访问它们?如果没有,他们还会在哪里?

由于它们是全球性的,因此实际上没有任何实际需要,我只是很好奇。

解决方法

使用 var 声明且不使用任何关键字的变量附加到全局对象。

我的问题是,有没有办法使用 window 或 globalThis 访问它们?

是的,如果您在指向您的 const 的全局对象上创建一个新属性。但为什么要这样做。

如果没有,它们又在哪里?

它们就像 globalThis 一样是变量。不附加任何东西,可以直接访问。如果您在谈论范围,那么它们是 block scoped。位于定义它们的 { } 中。