[サンプルソース1]
var a = 0;
// 変数aの値が0、もしくは1の場合メッセージを表示する
if (a == 0 || a == 1) {
alert("HIT");
}
左辺の値が真(true)の場合は左辺の値を、偽(false)の場合は右辺の値を返す。
つまり、[サンプルソース1]は左辺(a == 0)が真(true)なので、結果、if文がtrueになるわけです。
[サンプルソース2]
function test1(arg) {
arg = arg || 30;
:
:
}
この例では、引数が渡されてきている場合は引数の値が使用され、渡されてきていなかった場合は30がセットされます。
[サンプルソース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】