2010年01月06日

javascript: var v = a || b; の利点欠点と応用

var v = a || b;

評価式の利点欠点と応用(?)を考え始めたら、結局 switch-case も侮れんなぁ。という結果。ちなみに式は式だけど「評価式」と呼んで良いのかな?

利点・欠点、応用の前にまず確認。
// ■ 動作確認
alert(3 || 4); // 3
alert(3 && 4 || 5); // 4
alert(3 < 4 || 5); // true

// ■ false 扱いに関して
var o = {};
alert(0 || '' || null || false || undefined || void(0) || o.noprop || '全部 false 扱い'); // 全部 false 扱い
alert(undefined || 0); // 0 <- 注意
alert(0 || undefined); // undefined <- 注意

// ■ if と等価な処理
function test(){
  alert('処理');
}
if(!o.noprop) test(); // 処理
o.noprop || test(); // 処理

// ■ くどいけど確認
o.noprop || (o.noprop = '入れてやる');
alert(o.noprop); // 入れてやる
o.noprop || (o.noprop = 'すでに入っていると?');
alert(o.noprop); // 入れてやる <- 当然代入まで行っていない


続きを読む


posted by HiFa at 03:19 | 🌁 | Comment(0) | TrackBack(0) | JavaScript雑感 | このブログの読者になる | 更新情報をチェックする