こんにちは、JavaScriptを学んでいる皆さん!今回は、プログラミングの中級者へのステップアップに欠かせない、論理演算子の詳細と短絡評価について深掘りしていきます。
1. 論理演算子の復習
まず、基本的な論理演算子を簡単に復習しましょう:
- AND演算子(&&):両方の条件がtrueの場合にtrueを返す
- OR演算子(||):少なくとも1つの条件がtrueの場合にtrueを返す
- NOT演算子(!):真偽値を反転させる
2. 短絡評価(ショートサーキット評価)とは?
短絡評価は、論理演算子を使用する際に、最小限の評価で結果を決定する JavaScript の機能です。これにより、不要な処理を省略し、コードの効率を上げることができます。
AND演算子(&&)の短絡評価
console.log(false && anything); // false
最初の式が false
の場合、2番目の式は評価されません。なぜなら、ANDは両方が true
でなければ false
になるからです。
OR演算子(||)の短絡評価
console.log(true || anything); // true
最初の式が true
の場合、2番目の式は評価されません。ORは少なくとも1つが true
であれば true
になるからです。
3. 短絡評価の実用例
デフォルト値の設定
function greet(name) {
name = name || "Guest";
console.log("Hello, " + name + "!");
}
greet("Alice"); // "Hello, Alice!"
greet(); // "Hello, Guest!"
この例では、name
が falsy(undefined, null, "", 0, falseなど)の場合、"Guest" がデフォルト値として使用されます。
条件付き関数実行
function isAdmin(user) {
return user && user.isAdmin;
}
let user1 = {name: "Alice", isAdmin: true};
let user2 = null;
console.log(isAdmin(user1)); // true
console.log(isAdmin(user2)); // null
この関数は、user
オブジェクトが存在し、かつ isAdmin
プロパティが true
の場合にのみ true
を返します。
4. 注意点
短絡評価は便利ですが、意図しない結果を招く可能性もあります。特に、0や空文字列を有効な値として扱いたい場合は注意が必要です。
let count = 0;
let result = count || "No count";
console.log(result); // "No count"
この場合、0は falsy 値として扱われるため、"No count" が返されます。
練習問題
-
AND演算子を使用して、オブジェクトのプロパティが存在する場合にのみそのプロパティを出力する関数を作成してください。
-
OR演算子を使用して、引数が与えられなかった場合にデフォルト値を返す関数を作成してください。
答えは以下の通りです:
function printIfExists(obj, prop) {
obj && obj[prop] && console.log(obj[prop]);
}
function getDefaultValue(value) {
return value || "Default";
}
論理演算子と短絡評価をマスターすることで、よりクリーンで効率的なコードを書くことができます。これらのテクニックを日々のコーディングに活用してみてください!
次回は、条件分岐とループ構造について詳しく見ていく予定です。それでは、Happy Coding!