SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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 が返ってきます。
残念。

関連するメモ

コメント