0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# JavaScriptマスターへの道:短絡評価を徹底解説!

Posted at

こんにちは、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" が返されます。

練習問題

  1. AND演算子を使用して、オブジェクトのプロパティが存在する場合にのみそのプロパティを出力する関数を作成してください。

  2. OR演算子を使用して、引数が与えられなかった場合にデフォルト値を返す関数を作成してください。

答えは以下の通りです:

function printIfExists(obj, prop) {
    obj && obj[prop] && console.log(obj[prop]);
}
function getDefaultValue(value) {
    return value || "Default";
}

論理演算子と短絡評価をマスターすることで、よりクリーンで効率的なコードを書くことができます。これらのテクニックを日々のコーディングに活用してみてください!

次回は、条件分岐とループ構造について詳しく見ていく予定です。それでは、Happy Coding!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?