既然JS的var是失误,为什么不修改或删除var,反而引进了let和const?

  • A+
所属分类:知识百科
摘要

软件都是需要向前兼容,这是最基本的。你直接删了。目前运行的网站和代码都报错了。原因很简单,要向前兼容。试想一下2020年启用新标准,且删除了var,2020年以前所有的网页或者js项目都报错下面的错,并且后面的代码无法执行,很有可能会引起第三次世界大战。没有开玩笑。这就好比你做房子,地基没做稳,只能打打补丁支撑,不能直接拆掉地基,不然房子就垮了我到不觉得v

软件都是需要向前兼容,这是最基本的。你直接删了。目前运行的网站和代码都报错了。

原因很简单,要向前兼容。试想一下2020年启用新标准,且删除了var,2020年以前所有的网页或者js项目都报错下面的错,并且后面的代码无法执行,很有可能会引起第三次世界大战。没有开玩笑。

这就好比你做房子,地基没做稳,只能打打补丁支撑,不能直接拆掉地基,不然房子就垮了

我到不觉得var是失误,我自己搞了前端平台4年了。就是声明方式而已。

我猜提问题的应该不是程序员,不然应该不会问这种内容。

第一,这不是一个错误,是当时创造时不需要,算是局限性。

第二,什么是删除?是让现在所有编译器都不能识别"var"?那几年前、十年前的代码怎么办?不用怀疑,现在有些网站,还在运行。

这个失误其实也不算失误只是当初没考虑得那么周全。前端日新月异,每次变更都向着人们理想的方向发展,我们只是有一颗向好的心,真不是 var 的错。

const 和 let 可以让程序员们写代码的时候更加清晰明确。并且同时也解决了一些 var 现存的问题。比如:变量不可重复定义,明确表示变量是常量还是非常量等等。这些都是有益于开发的。

即使var已经出现了那么多年,肯定不可能直接删掉,不然后果不堪设想。凡事都有一个过渡期或长或短,我们要做的只需静静地等待就好。

要向前兼容呗

let 是块级作用域,const 用来声明常量,对于很多人使用的功能,不会轻易修改,删除,就比如说现在都5g了,3g,2g是不是可以放弃了? 在做变更的时候需要考虑整体的用户,不能一刀切。要是一弄,估计世界都沸腾了,let,const 的出现也是提议新编准才推行的,但还是需要babel来支持

开发迭代的原则是只能加不能删

为什么是失误?声明而已,很多脚本类的语言都是这种动态可扩展声明,不同的场景下使用方法不同而已,在很大程度上var让JS拥有很多的便利之处,只是随着时代发展在大型项目里缺陷才慢慢体现,所以标准才引入更加规范的let/const,用于不同的声明需求,不能说哪个是失误/错误,只是不同的需要而已

搞事情!那些不能说的秘密都在这里   关注公众号:ONE知识  

         

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: