javascript - while((m = text.match(exp))){}比while(m = text.match(exp)){}好在哪里?
迷茫
迷茫 2017-04-10 16:54:04
[JavaScript讨论组]

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)) {
  // ... 
}

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

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
高洛峰

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号