编程语言
首页 > 编程语言> > javascript – ‘let’和’const’ECMAScript 2015(ES6)有什么区别?

javascript – ‘let’和’const’ECMAScript 2015(ES6)有什么区别?

作者:互联网

我想知道ES6中let和const之间的区别是什么.它们都是块作用域,如以下代码中的示例所示:

const PI = 3.14;
console.log(PI);

PI = 3;
console.log(PI);

const PI = 4;
console.log(PI);

var PI = 5;
console.log(PI);

在ES5中,输出将是:

3.14
3.14
3.14
3.14

但在ES6中它将是:

3.14
3
4
5

我想知道为什么ES6允许更改const值,问题是为什么我们现在应该使用’const’?我们可以使用’let’代替吗?

注意:jsbin可用于测试,选择JavaScript运行ES5代码,Traceur运行ES6功能.

解决方法:

你所看到的只是一个实现错误.根据ES6 spec wiki on const,const是:

A initialize-once, read-only thereafter binding form is useful and has
precedent in existing implementations, in the form of const
declarations.

这意味着只读,就像现在一样. Traceur和Continuum中的const的ES6实现是错误的(它们可能只是忽略了它)

这是Github issue regarding Traceur not implementing const

标签:javascript,ecmascript-6,ecmascript-5
来源: https://codeday.me/bug/20190916/1808646.html