while((m = text.match(exp))){}比while(m = text.match(exp)){}好在哪里?

发布于 2022-09-02 00:53:37 字数 591 浏览 8 评论 0

JavaScript Standard Style 的规则建议写着:

Wrap conditional assignments with additional parentheses. This makes it clear that the expression is intentionally an assignment (=) rather than a typo for equality (===).

// ✓ ok 
while ((m = text.match(expr))) {
  // ... 
}
 
// ✗ avoid 
while (m = text.match(expr)) {
  // ... 
}

翻译:在有条件的赋值上包上圆括号。这使表达式描述更清晰,是有意地赋值而不是一种相等的判断。

然而我还是有点疑惑,麻烦地额外加个圆括号这样真有必要?有没有什么实战中不加圆括号会导致困惑的例子?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

呢古 2022-09-09 00:53:38

针对题目中的例子,个人认为两者无明显区别。
由于js灵活性极大,所以不同的团队通常会制定一些不同的规范,打个比方,你可以在一个规范里发现它要求尽量用if else替代三目运算符,另一个规范里又发现它提倡使用三目运算符,有人不喜欢布尔短路,另一些人却推崇这种写法,从根源上说两者并无优劣之分,一切只看你的团队更喜欢哪种。

题外话,我现在所在的团队甚至从框架层面上拒绝为一个dom的同一个事件分批次绑定多个处理函数,理由就是怕别人看不懂/不方便调试 :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文