JavaScript 的创建者“我应该停止插入自动分号......”
尾随分号经常导致宗教战争。您可以在 Qiita 和其他 SNS 上找到许多此类战斗。
然而,令人惊讶的是,很少有人将这场战争的原因追溯到根本原因。用你发现的(以及引用这篇文章的文章)是关于。
以下是 JavaScript 中尾随分号的 JavaScript 创建者意见由这是一个介绍。请注意,这篇文章来自 2012 年,因此它可能包含缺失的链接或过时的发现。
地狱分号每次看到你的评论,我都很难过。
有问题的代码,
clearMenus() !isActive && $parent.toggleClass('open')
这段代码是因此,要进行minification,必须进行包括ASI在内的完整解析,检查clearMenus()后面的换行符的含义,删除换行符,同时插入分号。。
这是似乎有人认为这是一个错误牙齿.
仅供参考,我同意道格的观点。
和我,什么时候我也同意楼主的意见仅允许使用 &&,因为该语言源自 Java。if 语句绝对是更好的风格。换句话说,JSMin 是正确的立场。
但这种态度太特设了,无法解决“同时运行 ASI 和缩小”的问题。
.
TC39 正在考虑使用! 作为中缀运算符。这段代码迟早会坏掉。了解如何正确使用分号。
! 作为中缀运算符是的,目前还没有正式的语法,可能是另一种语法。
然而,正如 Doug 所说,! 既不是句子的结尾也不是句子的开头。我想补充一点,这同样适用于换行符。
如果您查看[nlth],它会说明 ASI 和中缀运算符的一些惊人之处。也就是说,将来我们可能会添加新的中缀运算符,甚至是 is 和 isnt 这样的关键字运算符。他们的中缀运算符称为[no LineTerminator here]。
, [no LineTerminator here] 表示此处不允许终止,例如,return 右侧没有返回值的换行符。
中缀运算符未来功能的更改直接影响对换行符敏感的 ASI。
let flag = x is y; // x ! p = v; //
Bootstrap 本身是一个很棒的库,但是 Bootstrap 的我同意道格的说法,即非常糟糕这个例子的第 1 行的终止符当然很重要。
这个故事的寓意是,ASI 只是一个纠正语法错误的程序。如果您将 ASI 编码为一种通用语法约定,那么您就有麻烦了。这是 ECMA-262 的经典示例。
a = b + c (d + e).print()
[、/、一元+、-等也会出现类似的问题。请注意,如果没有错误,则不应用 ASI。
这个问题可能看起来微不足道,但当您开始组合 JavaScript 文件时,它会变得更加严重。这就是为什么 Dojo 和 IRC 等一些风格指南建议使用 ; 开始文件的原因,但它经常被遗忘。
在 1995 年 5 月的十天里,我希望我能更多地考虑换行符。
我敢肯定他们需要\ 或括号而不是ASI 来继续行。
然而,这艘船已经在 17 年前航行了。
为了在 JavaScript 中系统地处理换行符,根据是必须的。我但是 ES6 不太可能再出现这种情况了。
GitHub 问题充满了幼稚、理想主义和愚蠢的评论。编程语言什么时候不再有参数语法了?我所知道的每一种实用语言在格式上都有一定程度的***度,这使得它可以用得不好,用得也好。语言设计师尽管我们尽了最大的努力,但我们无法完全消除它。
我有两个论点。避免以影响 JavaScript 中换行符的方式使用 ASI。并且不要滥用&& 或|| 应该使用if 句子。
此外,鉴于 JavaScript 的无名且荒谬的悠久历史,我会说我会修复 JSMin。但在此之前,我想我会抛出一些尖刻的评论。
想法所以 JavaScript 的创造者是一个分号***者。
然而,这篇文章写于 2012 年,之后isnt 运算符消失了,有很多库不使用分号,比如Vue,所以不知道现在的想法是什么。此外,文章的所有外部链接都已失效,所以我不知道除此之外还写了什么,而且我遇到了麻烦,因为我不知道我同意什么。
但是,总体论点是 ASI 只是减轻语法错误的一种手段,不应依赖。
顺便说一句,我个人总是使用分号,但比起分号,我更像是一个语法禁令。任何一种写法都是可能的,所以如果只能使用其中一种语法,无论是否附加,冲突都会得到解决。
好吧,这样的声明会破坏兼容性,所以它永远不会通过。
奖金是一个引导问题。
"englishextra "如果我用 JSMin 缩小引导代码,它会中断。请将; 放入源代码中。"fat “不,这是一个 JSMin 错误。告诉 Doug。”Doug:“我不会因为这个疯狂和愚蠢的代码对 JSMin 做任何事情。”
之后,胖子和道格都没有出现,第三方之间的战斗持续了200多条评论。
脂肪是引导道格是是作者
JSMin 是一个通过删除注释和不必要的空格来减少 JavaScript 代码大小的库。出现上述问题是因为它没有被解析而是被正式转换。Doug 拒绝修复它,因为如果 bootstrap 正确放置 ;,这是一个不会发生的错误。即便如此,它还是说That is insanely stupid code.。
它在当时一定是一个有用的库,但自从出现了 Babel 和 gulp 等能够正确解析和缩小的缩小器,现在可以说它已经完成了它的作用。另一件事我要你做点什么。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308623458.html