Warning: Trying to access array offset on value of type bool in /home/mtp39/sfool.net/public_html/wp/wp-content/plugins/search-everything/config.php on line 29
JavaScriptで三項演算子を入れ子する書き方 | SFOOL ブログ

SFOOL

ただの ぶろぐの ようだ

JavaScriptで三項演算子を入れ子する書き方

JavaScriptには三項演算子というif文を省略した書き方があります。
正確には「JavaScriptにも」なんですが、他の言語は分かりません!

このif文が

var a = true;

if (a) {
     var b= 'aはtrue';
} else {
     var b= 'aはfalse';
}

alert(b); //aはtrue

こう省略できる。

var a = true;
var b = a ? 'aはtrue' : 'aはfalse';

alert(b); //aはtrue

それで、このブログにも使わせてもらっている「jQuery.easing.scroll.js」プラグインのソースを見ていたら、こんな一行があった。

t = $.support.boxModel ? navigator.appName.match(/Opera/) ? "html" : "html,body" : "body";

三項演算子なのは分かるけど、「?」と「:」が2つある。どういうことなんだ?

三項演算子は入れ子にできる

つまり、if文が入れ子にできるように、三項演算子も入れ子にできるということだった。

このif文は、

var a = true;
var b = true;

if (a) {
     if (b) {
          var c = 'aはtrueでbはtrue';
     } else {
          var c = 'aはtrueでbはfalse';
     }
} else {
     var c = 'aはfalse';
}

alert(c); //aはtrueでbはtrue

このように書ける。

var a = true;
var b = true;
var c = a ? b ? 'aはtrueでbはtrue' : 'aはtrueでbはfalse' : 'aはfalse';

alert(c); //aはtrueでbはtrue

こういう省略記法みたいなプログラムの書き方は、まだまだ知らないものが多そうだ。

  • Twitter
  • はてなブックマーク

コメント


Warning: Undefined variable $aria_req in /home/mtp39/sfool.net/public_html/wp/wp-content/themes/sfool/comments.php on line 42

Warning: Undefined variable $html5 in /home/mtp39/sfool.net/public_html/wp/wp-content/themes/sfool/comments.php on line 43

Warning: Undefined variable $aria_req in /home/mtp39/sfool.net/public_html/wp/wp-content/themes/sfool/comments.php on line 43

コメントはお気軽にどうぞ

メールアドレスは公開されませんのでご安心ください。