有啥理由不放弃“var”吗?
Posted
技术标签:
【中文标题】有啥理由不放弃“var”吗?【英文标题】:Is there any reason not to abandon "var"?有什么理由不放弃“var”吗? 【发布时间】:2017-08-29 15:36:51 【问题描述】:在学习javascript的过程中,了解到Let
和const
的引入是为了解决Var
在全局作用域和提升以及重新声明不报错的问题。
现在我可以在不使用var
的情况下完全编写代码吗?还是我应该暂时了解它们并等到它们被广泛“接受”?
也就是说,如果我暂时只使用let
和const
,我应该担心兼容性问题吗?
【问题讨论】:
var
仍有它的用途:***.com/questions/762011/…。
您应该担心与let 和const 的兼容性问题,因为它们似乎在IE10 及更低版本以及各种其他浏览器中均不受支持。
@George 转换器存在你知道的。兼容性几乎总是一个红鲱鱼。
很少有浏览器支持es6,你应该坚持旧版本并继续使用var。
我不相信“我会遇到兼容性问题吗?”是一个基于意见的问题,所以投票重新开放。
【参考方案1】:
直接回答这个问题 - 不,你不能,因为兼容性问题,@suraj 好心提醒我们。
话虽如此,在现代 JS 开发中,您越来越不可能使用 var
,因为 let
和 const
具有明显的优势,除了 var
的一些特定用途之外,将使用任一 BabelJS 、TypeScript 甚至是现在的 Webpack 2 来编译代码以实现向后兼容性,因为生产代码将在 vanilla JS 中提供。现代 IDE,比如 WebStorm,甚至会默认在 ES6 模式下对你的 var
进行 lint,以将它们更改为 let
。
从问题来看,你还在学习JS,你已经问对了问题,所以我建议今天使用let
和const
来利用ES6的优势,但这会增加处理转译器的复杂性。但是,如果您对此感到满意 - 这就是要走的路。
【讨论】:
转译器的想法听起来很有趣!以上是关于有啥理由不放弃“var”吗?的主要内容,如果未能解决你的问题,请参考以下文章