const创建一个块范围的常量。但是你如何创建一个非块范围的常量呢?在 Java 中,这通过final关键字起作用。
你不能总是const在你想要的级别上定义 a 。我说的是全局范围内的常量。
const创建一个块范围的常量。但是你如何创建一个非块范围的常量呢?在 Java 中,这通过final关键字起作用。
你不能总是const在你想要的级别上定义 a 。我说的是全局范围内的常量。
您可以使用Object.defineProperty执行此操作,如下所示:
Object.defineProperty(window, "myVariable", {value: "initial value", writeable: false});
console.log(myVariable);
// Note that trying to change it doesn't work
myVariable = "something else";
console.log(myVariable);
变量可以通过以下几种方式定义:
var: 作用域要么是全局的,要么包含在声明它的函数中。变量可以随意重新分配。let:范围仅限于声明它的块(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)。变量的值可以在范围内随意重新赋值。在块范围之外具有相同名称的变量被视为不同的变量。不要这样做。它会混淆你的代码。const: 与 相同let的限制,除了一旦分配变量就不能重新分配。(a, b, c) => {}与 基本相同var,除了它们是在一个函数内定义的,这是它们范围的限制。因此,如果您想要一个存在于更高范围的常量,只需在更高级别声明它即可。例如:
// declare it here
const color = '#cc0000';
const fn = () => {
// instead of declaring the const here. In here, it will be limited to the scope of the function
}
javascript中的作用域基本上是由对象、函数或()定义的。
顶级范围是窗口对象。如果你把它放在任何功能之外,它就会在那里。
因此,如果您想要一个非阻塞范围,只需在任何函数、对象等之外定义它即可。