JavaScriptの論理演算子

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaScriptの論理演算子

JavaScriptで論理演算を行うための&&演算子と||演算子。こいつの挙動って他の言語と違ってて結構おもしろい。どっちの演算子もbool型を返すわけじゃないんだよね。

&&は、左の値がfalseだったら左の値を返し、trueだったら右の値を返す。||は、左の値がtrueだったら左の値を返し、falseだったら右の値を返す。

var a = 0     && 10;  /* a = 0 */
var b = true  && '';  /* b = '' */
var c = 'foo' || '';  /* c = 'foo' */
var d = 0     || 30;  /* d = 30 */

||は簡易入力チェックに使えて便利。

function bar(e) {
    e = e || 'Hello';
    return e;
}

var e = bar();    /* e = 'Hello' */

JavaScriptに馴染みがない人にとってはわけのわからないコードなんだろうけど、慣れるとやめられない。

PHPでも

ってことで、PHPでの実装を考えてみた。

function jsAnd($l, $r) { return $l ? $r : $l; }
function jsOr($l, $r)  { return $l ? $l : $r; }

一応期待通りには動いてくれるんだけど、この関数に未定義の変数を渡すとNotice: Undefined variableが飛んでしまってあまり好ましくない。JavaScriptほどの便利さは出ないか。

スポンサーサイト

関連記事

トラックバック URL

http://liosk.blog103.fc2.com/tb.php/9-813f7208

トラックバック

コメント

コメントの投稿

お名前
コメント
編集キー
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。