技術の犬小屋

Webプログラミングを餌に生きる犬のメモ帳

「オブジェクト指向 JavaScript」を読んでいたところ、遅延評価を使ったプログラミングテクニックが紹介されていたので、覚えることにした。自分では使わないにしても、他人のコードを読んだときには理解できるようにしたい。
 

オペランドとは

コンピュータプログラミングにおいて、演算の対象となる値や変数のことである。「被演算子」と訳されることもある。
演算内容をあらわす記号などは「演算子」または「オペレータ(operator)」という。例えば「A+10」という式では、「A」と「10」がオペランドで、「+」がオペレータである。
 

遅延評価とは

論理演算子を繋いだ式を評価するときに、最後の演算子の直前までに結果が明確になっているときは、最後のオペランドの内容が結果に影響を与えないため、最後の演算子の実行はスキップされる。

if(false || true || false || false || true) {
…
}

 
上記では、if文の条件は真と評価され、if文の中の処理が実行される。
 

論理演算のルール
演算 結果
true && true true
true && false false
false && true false
false && false false
true || true true
true || false true
false || true true
false || false false

 

遅延評価を用いたテクニック

論理演算のオペランドにBoolean型ではない式がくると、Boolean型ではない結果になる。

true || "Smokydog"  //評価後、真偽値trueが返される
 

 

true && "Smokydog"  //評価後、文字列Smokydogが返される
 

 
このテクニックは、既に定義されているかどうか分からない値を使って変数の値を初期化するときにたまに使用される。次の例では、変数dogが既に定義されているときはその値がそのまま使用され、そうでなかった場合には文字列Smokydogで初期化する。

var dog = dog || "Smokydog";

 
 
以上
 
 
参考
書籍 オブジェクト指向 JavaScript
オペランドとは 【 operand 】 – 意味/解説/説明/定義 : IT用語辞典

比較演算子==と===の違い arrow-right
Next post

arrow-left ダンプファイルとトランザクションログでデータベースをフルバックアップする方法
Previous post