【发布时间】:2019-04-21 14:15:01
【问题描述】:
所以我想澄清一下,这样我就知道我们在这里的真正目的是什么。我正在学习 es6 中的 'const' 函数,但我不确定它是如何改变任何东西的。
首先,如果我用 const 定义一个变量,然后用 var 为其分配一个新值,那么整个事情就会崩溃。这就是我的意思
<script>
const x = 10;
var x = 10;
// x doesn't get any value assigned
</script>
其次,如果我用 var 定义了一个通用变量,然后用 const 定义了一个局部变量(我也可以用 var 或 let 完成),它只适用于用 const 定义局部变量但在外部的函数函数,它仍然是我用 var 定义的旧值。这就是我的意思
<script>
var x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
</script>
那么,'const' 有什么真正的区别呢?还是我有什么问题?
【问题讨论】:
-
const表示它是一个常数,它的值不能被重新赋值。例如,缓存 DOM 节点可能很有用,因为无论如何您都不会改变集合。你的第二点,那就是 const 的美妙之处。例如,它不仅在函数内,而且在 if/else 或 for 循环内。所以你不用害怕覆盖函数范围的变量。 -
我很高兴你认为 const 是一个辣妹,但我的意思是到目前为止,我观察到你可以使用 const、'let' 和 'var' 的地方可能更好选项
-
不一定。
let与const具有相同的范围限制,但允许重新分配。因此,如果您在不需要重新分配的变量上使用let,请使用const。使用const明确告诉您(编码器)和浏览器无法重新分配变量。