为什么要向 javascript 添加自动分号插入 (ASI)?

Why was automatic semi-colon insertion (ASI) added to javascript?

因为在我现在的工作单位"religious war",我决定研究javascript的ASI特征的历史。

但我无法找出为什么以及何时将 ASI 引入 javascript。

它似乎永远是一个特性,但是在 javascript 中有两种终止语句的方法是否有特定原因?

一些消息来源将 ASI 描述为一种纠错功能,这意味着省略分号是不好的做法。

依赖 ASI 对性能有影响吗?

我个人更喜欢分号,因为它使意图更加明确,但个人偏好在任何严肃的讨论中都不是一个可行的论据。

好问题!

Brenden Eich 最初设计了 JavaScript 编程语言,我认为可以公平地说他同意自动分号插入是该语言的设计缺陷。

我们不应该责怪他。他在 1995 年仅用了 10 天的时间就设计出了这门语言,没想到 20 年后它会成为(可能)地球上最重要的计算机语言。

下面post他说"I wish I had made newlines more significant in JS back in those ten days in May, 1995."

https://brendaneich.com/2012/04/the-infernal-semicolon/

继续阅读... :)