是否可以从javascript中的函数内部定义全局常量变量?

Abd*_*uti 1 javascript

我想做这样的事情:

function defineGlobalConst(){
     const s = 10;
}
Run Code Online (Sandbox Code Playgroud)

但我想从代码中的任何地方访问变量 s,因为我没有输入“const”

Ant*_*iad 9

您可以像这样定义一个全局变量

在浏览器中:

function defineGlobalConst(){
     window.s = 10;
}
Run Code Online (Sandbox Code Playgroud)

在节点:

function defineGlobalConst(){
     global.s = 10;
}
Run Code Online (Sandbox Code Playgroud)

如果你希望它是一个常量,你可以使用 defineProperty 和一个 getter:

Object.defineProperty(window, "s", { 
  get: () => 10,
  set: () => { throw TypeError('Assignment to constant variable.') },
});
Run Code Online (Sandbox Code Playgroud)

  • 它使用 getter 和 setter 在 window 对象中创建一个属性。getter 返回值,但 setter 抛出错误。因此,如果您尝试通过运行 s = 20 来更改 s 的值,它将不起作用,而是会抛出错误。 (3认同)