2017-02-16 37 views
0

只读(const) Behavior will vary across browser implementations。我指出的答案相当老旧(2012年),那么它仍然如此糟糕?Javascript:处理常量和跨浏览器兼容性

由于我需要在我的项目中跨浏览器兼容性,所以我应该避免使用const关键字?

如果'是' - 如何更换一个?

UPD:

刚才检查的developer.mozilla.org描述。是的:看起来是那么糟糕......

enter image description here

+0

这是一个与ES6 const有关的问题,并将这些引用移植到不支持该功能的浏览器。因此,您需要一个转换器('babel')来确保像IE 11(及以下)这样的ES5浏览器可以运行您的js。 –

+0

@siam据我所知,用'const'定义的变量有一些保护。所以我会说这是一个好主意,如果这是不可能的 - 我没有看到任何避免'var'的严重原因。你可以发布这个答案让我接受吗?谢谢! –

+0

@siam'var'不等于'let'或'const'。 –

回答

1

const是不是在旧的浏览器(我看着你,IE,Safari浏览器)提供。

如果你想玩的安全,你没有建立步骤(巴别,TypeScript等),只能使用var。 Babel和TypeScript都会将您的const s和let s编译为var s。因此,如果您使用任何这些工具,则可以免费使用constlet

请注意,varletconst不严格等同。 (var已悬挂,并有不同的范围)。另外,如果你不关心IE或Safari,几乎可以使用const而不需要构建工具。

+0

[说些什么?](http://i.imgur.com/v1c78yE.png) – deceze

+0

@deceze在iOS设备上试用Safari,目前仍在市场上,并告诉我它是否仍然适用。 –

+0

这是一个重要的限定词。 :) – deceze

0

您只需使用var而不是const即可支持旧版浏览器。 (**请记住var在某种程度上不等于const) 并为了保护var免遭更改,您可以将其放在私有范围内而不是全局范围内。 (所以它的工作部分就像一个const