Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 条件中的附加括号有意义吗?_Javascript - Fatal编程技术网

Javascript 条件中的附加括号有意义吗?

Javascript 条件中的附加括号有意义吗?,javascript,Javascript,我正在使用一些较旧的JavaScript代码,偶然发现在以下情况下广泛使用了附加括号: if ((foo)) { /* ... */ } if (!(bar)) { /* ... */ } if ((lorem === 'ipsum')) { /* ... */ } if ((functionCall1()) || (functionCall2())) { /* ... */} 这种做法有意义吗?我是否不知道旧的javascript实现中存在bug?这些示例中的附加括号根本没有任何用处

我正在使用一些较旧的JavaScript代码,偶然发现在以下情况下广泛使用了附加括号:

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引擎预先优化了这种函数调用


有一种方法可以利用这一点。不过,我不建议使用它,因为这是一个漏洞,将来可能不起作用。

如果您同时使用多个
的话,您只需要这样做,因为您需要将它们分组以了解您的意思。在我看来,这种做法没有任何意义。使用括号没有相关的错误。我想的正是它的可读性。谢谢。我知道这个表达,经常用它来命名。