JavaScriptの論理演算子
- 2007-05-20
- カテゴリ: Client Side
- タグ: JavaScript Tips
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

