ヨハウィングの忘備録

レッドブル・インターネットの

jsの三項演算子であそんでみた

三項演算子の基本

条件式 ? 式 : 式 ;

ですね。

まずは基本

false ? b = 0 : b =1;

b -> 1 


改行できる

false 
? 
b = 0 
: 
b = 1;

b -> 1 

複数の処理もできる。

false ? (a=1 , b=2) : (a = 2, b= 1);

a -> 2
b -> 1

関数を式として見てみると
こんな芸当もできる。

function hoge(){
    b = 48;
    return a = 34;
} 

hoge() ? c=0:c=1;

a -> 34
b -> 48
c -> 0

ヒマじゃないんだけど
色々思いついてしまう。
即時関数を使って無名関数を埋め込む

function hoge(){
    a = 0
};


false ? ( function(){
    a=1
})() : hoge();
 
a->0


true ? (function(){
    a=1
})() : hoge() ;

a->1


次は再帰やってみるか

a=0;
var hoge = function(){
    a+=1;
    a?a-=2: hoge();
};
hoge() ->VM68515:4

そりゃできるか。

ぼくの頭でできる実験はこれくらいです。

javascriptは奥が深いというより、理念に忠実なイメージ
式とか値とか 化けてる奴でもちゃんと動く。

この三項演算子がいい例ですね。


おまけ

c = (c = 0) ? c = 1: c = 2;

c->2

なんてことない c = 2 なんだけど、なんか不思議。