【Eloquent JavaScript和訳】 Chapter 2: JavaScript の基礎: 値、変数、制御フロー

EloquentJavaScriptJa

公開:

2 なるほど
8,689 VIEW
0 コメント

show(Number("5") * 5);

前にブール型演算子 && と || の話をした時、これらはブール型値を生むと述べましたが、飛躍し過ぎでした。これらの演算子をブール型値に適用すれば確かにブール型が返されます。しかし他の種類の値、値中の引数を返すような値にも適用できるのです。

|| が実際にすることは: まず左側の値を調べます。この値をブール型に変換して true の場合、この左側の値を返します。そうでない場合は右側の値を返します。引数がブール型の場合にこのことが正しいかどうか自分で調べてみてください。何故こうなるのでしょう? でも実際にこういう結果になります。次の例を見てください:

var input = prompt("What is your name?", "Kilgore Trout");
print("Well hello " + (input || "dear"));

ユーザーが名前を与えずに他の方法で 'Cancel' を押すか prompt ダイアログを閉じた場合、変数 input の値は null または "" です。これらはどちらもブール型に変換されると false になります。この場合、式 input || "dear" は '変数 input の値、そうでなければ文字列 "dear"' と読むことができます。'フォールバック' 値を与える簡単な方法です。

演算子 && も同様ですが事実はその逆です。左側の値がブール型に変換された時に false になる場合、その値が返され、そうでない場合は右側の値が返されます。

これら 2 つの演算子のもう一つの特徴は、右側の式が必要な時にだけ評価されることです。true || X の場合、X が何であっても結果は true です。X が評価されることはなく、副作用を持っていてもそれが起こることはありません。false && X も同じです。

false || alert("I'm happening!");
true || alert("Not me.");

翻訳元

Chapter 2:Basic JavaScript: values, variables, and control flow
 Chapter 2:Basic JavaScript: values, variables, and control flow
eloquentjavascript.net  

最終更新:

コメント(0

あなたもコメントしてみませんか?

すでにアカウントをお持ちの方はログイン