2017-12-26 4 views
1

私はフロントエンドプログラミングのためのjavascriptを学び始めています。PythonのようなIF条件の2つの等価性

i = 50 
while i < 301: 
    if i % 5 == i % 3 == 0: 
     print(i) 
    i += 1 

だから私は、whileループを解決しようとしているだからpythonで私はこれを行うだろう5と3

でdivisbleである50-300からすべての番号そのコンソール・ログをexcersise

そして完璧に動作します。私はあなたが使用することができるとand演算子が知っているが、この問題の全体的な点は、それを使用することを避けることです。

だから私はJavaScriptで

var i = 50; 
while (i < 301){ 
    if (i % 5 === i % 3 === 0){ 
     console.log(i); 
    } 
    i ++; 
} 

何とか文句を言わない仕事という同じことをしてみてください。ただし、&&演算子を使用します。 javascriptの二重同値は許可されていませんか?もしそうなら、私は何が欠けていますか?

答えて

4

それはを許可されています、そしてそれはあなたがすることを告げまさにありません - それはそれはあなたがそれがやりたいものと同じではないということだけです。 i % 5 === i % 3 === 0(i % 5 === i % 3) === 0と同じです(===は左結合型なので)。 (i % 5 === i % 3)は、iの値に応じてtrueまたはfalseのいずれかに評価され、true === 0false === 0は両方ともfalseであるため、条件は常にfalseになります。

+1

いいインタビューの質問のようです。 –

+0

私は二重の平等が許されていないと言っています。条件付き '3 == 5 == 0'を書き込むことはできますが、それは適切な二重の不等式ではありません –

関連する問題