【JavaScript】空だったら何々
問題
Javascriptで、文字列の入った変数 a が空文字でなかったら aを、空文字だったら「空です」をalertしてください。
答え
if (a == '') { alert(a); } else { alert('空です'); }
まあ、それでも。ちゃんと動きますしね。
もっとコンパクトにすると?
alert(a ? a : '空です');
うーん もう一声。
何が起きるか分かっていたら、これでよい場合は結構あると思います。
alert(a || '空です');
Javascript の a || b
は、a評価して、それがtrue(相当)なら a(を評価したもの)、そうでないなら bを(評価して)返す。
'' || 'あ' → 'あ' 'あ' || '' → 'あ' null || 'あ' → 'あ' 0 || 'あ' → 'あ' undefined || 'あ' → 'あ' '0' || 'あ' → '0' undefined || null || '' || 0 || 123 → 123
ちなみに、phpの || 演算子は booleanを返してくるので、
echo $a || ‘該当なし’; をすると 1 が返ってきます。
残念。
コメント