ES语法更新是因为浏览器更新了吗?

1.浏览器不更新的话,是不是ES语法也不会变。否则新语法中的新关键字如何会被浏览器解析?
2.框架类的更新是不是跟语法的更新是一个道理?
在下是小白,在学习计算机方面的知识,希望大哥哥们能解答下我的困惑。

阅读 2k
2 个回答

这种不涉及技术细节的问题建议去知乎提问,而且这个问题已经有相似的问题:知乎:es,js,ts三者有什么关系
以马路作比,ES标准规定了汽车的轮距和马路的宽度,开发者是造车子的,浏览器是马路。
Q1:浏览器不更新的话,是不是ES语法也不会变。否则新语法中的新关键字如何会被浏览器解析?
A1:这实际上是两个问题:

  1. 标准可以先订好,然后修马路的再慢慢跟上,修马路的也可以按自己的喜好先做点新东西试试,标准制定方觉得可以的话也会在后续版本中吸纳这些新东西;
  2. 老马路无法预见新标准的新东西,所以按照新标准造出来的车子在老马路上是绝对无法行使的,一上路要么抛锚,要么翻车,需要经过改装(加 polyfill)才能上老马路,当然,改装马路(自定义 script type ,并使用定制的 runtime 来解析)的也不乏其人。

Q2:框架类的更新是不是跟语法的更新是一个道理?
A2:不知道你说的道理是什么道理,框架在这里相当于造车的技术,是另外一条故事线了。

  1. html/css/js 都有兼容性一说,比如低版本的 IE 由于历史遗留的问题,无法使用 HTML5 或者是新标准的语法。但有时候我们开发的时候想使用新语法开发该怎么办呢(新语法更加简洁和便利)?那此时可以对项目的代码引入 polyfill 或者 runtime。将高版本的语法编译为低版本的语法。

    做兼容的代价是使用新版本浏览器的用户会有额外的负担,因为引入的兼容性库都是对使用新版本的用户是用不少的。因此这里会有权衡。

  2. 框架类更新不一定是语法更新,框架的更新可能是发现了已知的 bug、安全性漏洞,再要么是框架引入了新的功能。发布时一般会遵循某个版本号规范,最常见的格式是:

    v主版本.子版本号.补丁版本号
    例如: v1.20.9

    主版本一般也被称为大版本号,通常只有大更新时常会改变这个版本号,如 vue v1.xvue 2.x的开发差异就有点大。
    子版本一般是有较小的功能引入,补丁版本号通常是发现了 bug,并且做了修复后发布的版本号。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题