2016-11-09 10 views
1

私はいくつかの古いのJavaScriptコードで作業し、広くそのような条件で、余分な括弧の使用つまずいています:条件に余分なかっこは意味がありますか?

if ((foo)) { /* ... */ } 

if (!(bar)) { /* ... */ } 

if ((lorem === 'ipsum')) { /* ... */ } 

if ((functionCall1()) || (functionCall2())) { /* ... */} 

このような行為はどんな意味がありますか?以前のjavascript実装のバグを認識していませんか?

+0

「AND」と「OR」を複数使用している場合は、それらをグループ化して意味を理解する必要があるため、これを行う必要があります。 – Fusseldieb

+0

私の意見では、その練習は意味をなさない。カッコを使用することに関連するバグはありません。 –

答えて

3

これらの例の余分なカッコは、まったく役に立たない。より読み

このコードは正確に同じ機能、および(間違いなく)である:

if (foo) { /* ... */ } 

if (!bar) { /* ... */ } 

if (lorem === 'ipsum') { /* ... */ } 

if (functionCall1() || functionCall2()) { /* ... */} 

文字通りそれらを追加するにはポイントがありません。

+0

「間違いなく」。それのためにupvoted。 – Bathsheba

+0

それは私の心にあった読みやすさです。ありがとうございました。 – lupz

1

いいえ、まったく余計です。特に&&||で作業する場合、および三項条件演算子? :

一部の民族は、彼らの表現で明瞭感を実現するために、余分な括弧を追加したいです。

個人的には、はありません。私は絶対必要なときに括弧を使用しています。私にとって、括弧は、式が正しく評価されるためには、通常の演算子の優先順位から出発する必要があることを知らせます。 1つの例は、<<>>で作業するときです。何らかの理由で、驚くほど優先度が低くなります。

1

いいえ、それは過剰です。どんな小型化装置もそれを取り除くだろう。関連ノートで

は、余分な括弧は実際に違いを作る特殊なケースがありますが、それはこの場合のみです:

そうです
(function() { /* Do something */ })(); 

、一般的な生命維持。これはJSエンジンがこの種の関数呼び出しを先取りして最適化しているためです。

これを実際に利用するにはlibraryがあります。しかし、私はそれを使用することをお勧めしません、それは、よく、悪用され、将来的には動作しない可能性があります。

+0

その式を認識し、名前空間にregularyを使用します。 – lupz

関連する問題