Javascript 条件中的附加括号有意义吗?
我正在使用一些较旧的JavaScript代码,偶然发现在以下情况下广泛使用了附加括号:Javascript 条件中的附加括号有意义吗?,javascript,Javascript,我正在使用一些较旧的JavaScript代码,偶然发现在以下情况下广泛使用了附加括号: if ((foo)) { /* ... */ } if (!(bar)) { /* ... */ } if ((lorem === 'ipsum')) { /* ... */ } if ((functionCall1()) || (functionCall2())) { /* ... */} 这种做法有意义吗?我是否不知道旧的javascript实现中存在bug?这些示例中的附加括号根本没有任何用处
if ((foo)) { /* ... */ }
if (!(bar)) { /* ... */ }
if ((lorem === 'ipsum')) { /* ... */ }
if ((functionCall1()) || (functionCall2())) { /* ... */}
这种做法有意义吗?我是否不知道旧的javascript实现中存在bug?这些示例中的附加括号根本没有任何用处 这段代码的功能完全相同,而且(可以说)可读性更强:
if (foo) { /* ... */ }
if (!bar) { /* ... */ }
if (lorem === 'ipsum') { /* ... */ }
if (functionCall1() || functionCall2()) { /* ... */}
添加它们毫无意义。不,它们完全是多余的 有些人喜欢添加多余的括号,以便在表达中获得清晰感:尤其是在使用
&&
、| |
和三元条件运算符时:代码>
就我个人而言,我从不这样做,因为我只是在绝对必要时才使用括号。对我来说,括号表示表达式需要偏离正常运算符的前导才能正确计算。一个例子是在使用
时,由于某些原因,它们的优先级低得出奇。不,这是一种过分的做法。任何迷你们都会摆脱它
另一个相关的注意事项是,有一种特殊情况下,额外的括号实际上起了作用,但只有在这种情况下:
(function() { /* Do something */ })();
没错,一种普通的生活。这是由于JS引擎预先优化了这种函数调用
有一种方法可以利用这一点。不过,我不建议使用它,因为这是一个漏洞,将来可能不起作用。如果您同时使用多个
和和或的话,您只需要这样做,因为您需要将它们分组以了解您的意思。在我看来,这种做法没有任何意义。使用括号没有相关的错误。我想的正是它的可读性。谢谢。我知道这个表达,经常用它来命名。