• ベストアンサー

javascript if文

javascript if文 まずソースコードなのですが var num; var sign; num = 20; (1)sign = num >= 0 ? '正' : '負'; console.log( num + "は" + sign ); (2)if(num >= 0){ console.log( num + "は" + sign ); } (1)と(2)は同じ意味なのですか?(1)のやり方はあまり見かけないのですが用途としてはどのような時に使うのですか? 馬鹿な質問でスミマセン。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5076/13258)
回答No.1

(1) は「三項演算子」と呼ばれる書き方です。(ググルといっぱい解説が出てくるでしょう) 例示されている (1) と (2) は同じ意味ではありません。 (1) の内容を通常の if 分で書くとしたら if(num >= 0){ sign = '正'; } else { sign = '負'; } console.log( num + "は" + sign ); となります。

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8518/19364)
回答No.2

>(1)と(2)は同じ意味なのですか? 違う意味だし、異なる動作をします。 (2)は、signに何も代入してないのに、参照して内容を表示しようとしています。 (2)を正しく書くなら(つまり、(1)と同じ動作をさせたいなら) var num; var sign; num = 20; if(num >= 0){ console.log( num + "は正" ); } else { console.log( num + "は負" ); } とすべきです。 >(1)のやり方はあまり見かけないのですが用途としてはどのような時に使うのですか? 条件演算子を余り見かけない理由は、ソフトハウスや会社によっては「判りにくくなるからif文で書け。条件演算子は使うな」と指導している所があるからです。 使い方によっては「if文で書くよりも、ずっとスッキリ書ける事もある」のですが。 とは言え「前任者が書いた条件演算子のせいで、引き継いだ後任者が、何が書いてあるのか理解出来なくて死ぬ」って事が良くあるので、使わずに済むなら使わない方が良いでしょう。 下手に多用すると「内容を忘れた頃、自分が何をしたくてそう書いたのか思い出せず、自分で書いたプログラムが自分で理解不能」になります。

関連するQ&A

  • javascript var

    javascript 「var」について ソースコード function hello(name){ 「var」 msg = "your name " + name; return msg; } var greet = hello("Tom"); console.log(msg); ソースコードの2行目の頭に「var」をつけるかつけないかでコンソールエラーになるか、ならないかが変わるのですが「var」をつけると何故かエラーになるのですが、その理由が分かる方いらっしゃいますか? 「var」は「バリアブル」の略で変幻自在みたいな意味だと思うのですが、それをつけてエラーになる理由が良く分からなくて質問致しました。 馬鹿な質問ですが答えて頂けると助かります。m(__)m

  • javascript Param

    * @param {string} coding1 * @param {string} coding2 * @param {string} coding3 */ var App = function( coding1 , coding2 , coding3 ) { console.log(source_code); $.App.call(this, hospital_code, terminal_code, source_terminal_code); this._client.add('lodging_reservations'); /** @private {array<object>} this._lodging_reservations = []; /** @private {object} this._lodging_reservation_setting = {}; }; 今訳あって他人の作ったJavascriptのソースコードを熟読するという作業を行っているのですが 1行目~3行目の「 @param ~」って5行目の変数Appの関数に引数として渡されてるのでしょうか? 馬鹿な質問でスミマセン。

  • Javascript について質問です

    var tired=true; var bored=false; var nap = function() { if(tired || bored){ console.log("OK"); } else{ console.log("else"); } }; 上記のコードを書いた際、下記の実行結果となり、OKが表示されません。 どなたか原因が分かる方がおりましたら、教えてください。 else

  • javascriptのif文の書き方で。これは参考書の間違い?

    javascriptのif文の書き方で。これは参考書の間違い? 画像におけるif文は、下記のように、 中カッコを使って、 書かれるべきなのではないでしょうか? if(条件式){ //実行するコード }

  • for文の中の余計な(?)括弧の意味を教えて下さい

    ・下記のようなコードがありました for(var j = 0;j < 8;++j){  {   console.log(j);  } } ・下記とは何が異なるのでしょうか? for(var j = 0;j < 8;++j){  console.log(j); } ・JavaScript(ECMAScript)では、括弧を幾つ設定しても良いのでしょうか? for(var j = 0;j < 8;++j){  {{{{{{{{{{{ console.log(j);  }}}}}}}}}}} }

  • Javascript について質問です

    Javascriptで下記のような文章を書きました。 for(var i=0;i<3;i++){ console.log("T"); }; i=0; while(i==2){ console.log("i=0です"); i++; }; なんで実行結果に、0が入るのでしょうか? またwhile文についてですが、実行されておりません。条件式をi<2にしたら動きました。 理由が分からないので、教えてください。 実行結果 T T T 0

  • Javascript教えてください!

    現在、javascriptを勉強するために、 http://www.kagitaku.com/diary/2010/07/08/javascript-stopwatch.html に掲載されているストップウォッチのソースコードを解読しています。 しかし、以下のソースコードでつまづいてしまいました。 var h = Math.floor(difftime / (60 * 60 * 100)); var hs = String(h); hs = (h < 10)? "0" + hs: hs; 3行目の文はいったいどのような働きをするのか丁寧に教えていた頂けないでしょうか? よろしくお願い致します。

  • javascriptのバーティカルバー1本の使い道

    宜しくお願い申し上げます。 javascriptでバーティカルバー1本は、バイナリビット演算子で、ビット論理和 (OR) だと言う事と、ビット演算子は、そのオペランドを 32 ビット (0 と 1) の並びとして扱い、標準の JavaScript 数値を返すということは、こちらのページで読んだのですが、その挙動と使い道が分かりません。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators 例えば、以下のようにコードを書くと、 console.log(10 | 10); console.log(10 | 9); console.log(10 | 8); console.log(10 | 7); console.log(10 | 6); console.log(10 | 5); console.log(10 | 4); console.log(10 | 3); console.log(10 | 2); console.log(10 | 1); console.log(10 | 0); このような謎(私にとってだけだと思いますが)の数値が戻ります。 [Log] 10 [Log] 11 [Log] 10 [Log] 15 [Log] 14 [Log] 15 [Log] 14 [Log] 11 [Log] 10 [Log] 11 [Log] 10 数学が苦手な私にも分かるようなページをご存知の方、もしくは解説をして頂ける方がいらっしゃいましたら、是非ご教示を宜しくお願い申し上げます。

  • javascriptの基礎的な質問です。

    ご覧いただきありがとうございます。 javascript コンソールで var D; D.d="T"; console.log(D.d) とうつと、 TypeError: Cannot set property 'd' of undefined と出てしまいます。 これとは別に、 var D={d:"T"}; console.log(D.d) はうまくいくのですが、 前者はどこが定義として不十分なのでしょうか。 よろしくお願いします。

  • JavaScriptのif文について質問したいのですが、

    JavaScriptのif文について質問したいのですが、 <form>で文字を記入する欄に正しい文字を入力すると「正解」で違うと「不正解」というものにしたいのですが、やり方がわかりません。 仮に、 <form>の記入するらんに、答えが「▲□」とします。 そに「▲□」を<form>に記入して、「正解」「不正解」を表示したいのですが、 どうしたら・・・ ソースも記入して回答してください。 できれば、それに関するサイトも教えてください。(登録なし) おはやめに回答をお待ちしています。

専門家に質問してみよう