我最近在JavaScript中遇到了const关键字。据我所知,它是用来创建不可变变量的,我已经测试了,以确保它不能被重新定义(在Node.js中):
const x = 'const';
const x = 'not-const';
// Will give an error: 'constant 'x' has already been defined'
我意识到它还没有在所有浏览器上标准化——但我只对Node.js V8的环境感兴趣,我注意到某些开发人员/项目似乎非常喜欢它,当var关键字可以用于同样的效果时。
什么时候用const代替var比较合适?
它是否应该被用在每一个不存在的变量上
重新分配是声明的?
如果用var来代替,会有什么不同吗
Const还是反之?
你回答得很好,但还是简单点吧。
当你有一个定义的常量时,应该使用Const(理解为:它在程序执行期间不会改变)。
例如:
const pi = 3.1415926535
如果你认为这是在以后的执行中可能会改变的东西,那么就使用var。
根据这个例子,实际的区别是,使用const时,你总是假设pi将是3.14[…],这是事实。
如果你把它定义为一个变量,它可能是3.14[…]或者不是。
从更专业的角度来说,Tibos的理论在学术上是正确的。
对于为什么使用const, Tibos的回答很好。
但是你说:
据我所知,它是用来创建不可变变量的
这是错误的。改变变量不同于重新赋值:
var hello = 'world' // Assigning
hello = 'bonjour!' // Reassigning
使用const,你不能这样做:
const hello = 'world'
hello = 'bonjour!' // Error
但是你可以改变你的变量:
const marks = [92, 83]
marks.push(95)
console.log(marks) // [92, 83, 95] -> the variable has been mutated.
因此,任何不使用=号而改变变量值的进程都是在改变变量。
注:+=例如…重新分配!
var a = 5
a += 2 // Is the same as a = a + 2
所以,底线是:const不会阻止你改变变量;它阻止您重新分配它们。