Java Script Java Script 演算子 || の特殊な使用方法

-


Topページ  >  お勉強  >  Java Script  >  演算子 || の特殊な使用方法 

演算子 || の特殊な使用方法

if文などで使用する 『||演算子』 の特殊な使用方法を記述します。





1. [基本的な使い方]
  『||演算子』 は通常、if文のOR演算子として使用されます。

[サンプルソース1]
var a = 0;

// 変数aの値が0、もしくは1の場合メッセージを表示する
if (a == 0 || a == 1) {
  alert("HIT");
}


2. しかし、実際には以下の仕様に基づいて動作しています。

左辺の値が真(true)の場合は左辺の値を、偽(false)の場合は右辺の値を返す。

つまり、[サンプルソース1]は左辺(a == 0)が真(true)なので、結果、if文がtrueになるわけです。


3. [ひねった例]
  上記仕様を利用すると、以下のように初期値を設定する事が可能です。

[サンプルソース2]
function test1(arg) {
  arg = arg || 30;
  :
  :
}

この例では、引数が渡されてきている場合は引数の値が使用され、渡されてきていなかった場合は30がセットされます。


4. [メソッドを使った例]
  さらにメソッドをからめると、以下のように使用する事が可能です。
  (test2メソッドは、サンプルをシンプルにする為に極論で説明しています。)

[サンプルソース3]
function test2() {
  var target = method2;
  var arg = 30;
  
  (target || method1)(arg);
}

function method1(arg) {
  alert("メソッド1です。\n引数は" + arg + "です。");
}

function method2(arg) {
  alert("メソッド2です。\n引数は" + arg + "です。");
}

test2メソッドを実行すると、『メソッド2です。引数は30です。』と表示されます。
method2メソッドだけが実行されました。
左辺の変数『target』にmethod2メソッドがセットされていたので真とみなされ、method2メソッドが実行されたわけです。

では、以下のように修正してみるとどうでしょう?

[サンプルソース4]
function test3(arg) {
  var target = null;
  var arg = 30;
  
  (target || method1)(arg);
}

test3メソッドを実行すると、『メソッド1です。引数は30です。』と表示されます。
今度はmethod1メソッドが実行されました。
左辺の変数『target』がnullだったので偽とみなされ、右辺のmethod1メソッドが実行されたのです。




[Java Script - Java Script - 基本]


基本構文  【変数の宣言、if、for、while、関数】


IDからエレメントの参照を取得する  【document.getElementById】


画面遷移せずにHTMLのテキストを変える  【innerHTML】


変数の型を取得する  【typeof】


テキストボックスを動的に入力可・不可にする  【readOnly】


タイマーをセットする  【setTimeout】


無名関数を宣言する  【function】


変数のスコープ(範囲)について


プロトタイプチェーンについて  【prototype】



Topページ  >  お勉強  >  Java Script  >  演算子 || の特殊な使用方法 






-