5/27 回答が連続投稿される不具合が発生しております

不可解な動作に困っています。
どなたかご教示ください。

<html>
<body>

<script type="text/javascript">


var a=8;

if(10>a>0){document.writeln(a);} else {document.writeln("else");}

</script>
</body></html>
だと、ブラウザで実行すると画面に8と表示されます。
一方
<html>
<body>

<script type="text/javascript">


var a=8;

if(10>a>7){document.writeln(a);}else{document.writeln("else");}

</script>
</body></html>

とすると、実行したときにelseと表示されます。

とても不可解です どうしてでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

不可解でも何でもありません。

規定の動作です。

10 > 8 > 0
= (10 > 8) > 0
= true > 0
= 1 > 0
= true

10 > 8 > 7
= (10 > 8) > 7
= true > 7
= 1 > 7
= false
    • good
    • 0
この回答へのお礼

教えていただきありがとうございます!!!

自分の間違いでした!!

shiren2さんのおかげで、正しく記述できるようになりましたが、
Chaireさんのおかげで、動き方まで詳しく理解することができました。

ありがとうございました。

お礼日時:2011/05/19 10:30

JavaScriptって比較演算子をいくら並べてもエラーにならないんですね…。



とりあえずこういった記述はありませんので、実装系依存(未定義の動作)です。
x (10>a>0)
x (10>a>7)
o (10 > a && a > 0)
o (10 > a && a > 7)
    • good
    • 0
この回答へのお礼

ありがとうございます!!
勘違いして混乱していました。

とても助かりました。

お礼日時:2011/05/19 10:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング