2017-04-04 39 views
6

在学习JavaScript的过程中,我了解到Letconst是为了解决Var关于全局范围和提升的问题,并且在重新声明时不会给出错误。有没有理由不放弃“var”?

现在我可以在不使用var的情况下完全编写代码吗?或者我现在应该知道他们,等到他们变得广泛“可以接受”?

换句话说,如果我只使用letconst,那么暂时我应该担心兼容性问题?

+2

'var'仍然有它的目的:http://stackoverflow.com/questions/762011/whats-the-difference-between-using-let-and-var-to-declare-a-variable。 –

+1

您应该担心与[let](http://caniuse.com/#search=let)和[const](http://caniuse.com/#search=const)的兼容性问题,因为两者似乎都不在IE10及其以下版本和其他各种浏览器中支持。 – George

+3

@乔治transpilers存在你知道。兼容性几乎总是一个红鲱鱼。 –

回答

3

要直接回答问题 - 不,您不能,因为兼容性问题,因为@suraj提醒我们。

话虽如此,在现代JS开发你是越来越不可能使用varletconstvar一些具体用途有明显的优势,除了和将使用两种BabelJS打字稿甚至现在Webpack 2将代码向后兼容,因为生产代码将在vanilla JS中发货。像WebStorm这样的现代IDE默认在ES6模式下将你的var更改为let

从这个问题来看,你还在研究JS,你已经提出了正确的问题,所以我建议今天使用letconst来利用ES6的优点,但这会增加复杂性与转运人打交道。但如果你对此感到满意 - 这就是要走的路。

+0

转译器的想法听起来有趣的尝试! –