1

Here if

document.write(eval("(2 == 2)"));

it prints true

And

document.write(eval("(2 == 2)&(5<10)"));

it prints 1
Why not it always returns true or false.If conditions increases in string it gives 0 or 1.What is the way to get same type of result.

4

3 に答える 3

5

&は論理演算子ではないため、ビット単位(数値)演算子です。あなたはおそらく&&論理積演算子を意味しました。

evalコード例で使用する理由はないことに注意してください。(使用する理由はほとんどありませevalん。ほとんどの場合、より良い代替手段があります。この場合、代替手段も必要ありません。)それを削除してもまったく同じ結果になります。

于 2012-07-13T10:28:13.730 に答える
1

&はビット演算子であり、数値を返します。試す"(2 == 2)&&(5<10)"

于 2012-07-13T10:28:32.757 に答える
1

論理積()の代わりに1ビット演算子()を使用したため、印刷されます。&&&

また、JavaScriptは大まかに型付けされているため、ブール値trueをのint値として扱い1ます。これは、呼び出すことで確認できます。

document.write(eval("(2 == 2)+(5<10)"));

結果は次のようになります

2
于 2012-07-13T10:28:34.653 に答える