如何在js中创建非块范围常量?

时间:2018-07-09 23:15:07

标签: javascript scope constants

const创建一个块作用域常量。但是如何创建一个无块范围的常量?在Java中,这可以通过final关键字来实现。

您不能总是在所需级别上定义const。我说的是一个在全局范围内的常量。

3 个答案:

答案 0 :(得分:1)

可以通过几种方式定义变量:

  1. var:作用域是全局的或包含在声明它的函数中。可以随意重新分配变量。
  2. let:作用域仅限于声明它的块(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)。可以在范围内随意重新分配变量的值。在块范围之外具有相同名称的变量被视为不同的变量。 不要这样做。它将使您的代码混乱。
  3. const:与let的限制相同,但一旦分配,就无法重新分配变量。
  4. 函数参数:(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
}

答案 1 :(得分:0)

您可以使用Object.defineProperty进行以下操作:

colspan = < nb missing cols +1>

答案 2 :(得分:0)

javascript的作用域基本上是由对象,函数或()定义的。

顶级范围是window对象。如果将其放在任何功能之外,它将在那里。

因此,如果要使用非阻塞范围,只需在任何函数,对象等之外定义它即可。