JavaScriptの論理演算子(&&、||、!)の便利な使い方

@ハクト 2023-06-16 11:11:46に投稿

JavaScriptには三つの主要な論理演算子が存在します。その3つとは「&&」AND演算子、「||」OR演算子、そして「!」NOT演算子です。

これらの演算子は主に条件の判定などで使いますが、値を代入する際に反転させるなどして使用することも可能です。

今回はそんな論理演算子の基本的な使い方と意外と知らない便利な使用方法を解説していきます。

【JavaScript】「&&」論理積の使い方

複数の条件をチェック

if (isLoggedIn && hasAdminAccess) {
  console.log("ログイン済みの管理者です");
}

「isLoggedIn」が真(ユーザーがログイン済み)、かつ「hasAdminAccess」が真(管理者アクセス権を持つ)の場合のみメッセージを表示します。

短絡評価を利用して関数を実行

isLoggedIn && displayMessage();  

「isLoggedIn」が真(ユーザーがログイン済み)の場合のみ「displayMessage()」関数を実行します

if文で書くと以下のようになります。

if(isLoggedIn) displayMessage();

短絡評価を利用して値を設定

let displayName = user && user.name;

「user」が真(ユーザー情報あり)の場合のみ「user.name」が「displayName」に設定されます。そうでない場合、「displayName」には「user」の値(nullやundefined等)を設定します。

if文で書くと以下のようになります。

let displayName;
if (user) {
     displayName = user.name;
}

【JavaScript】「||」論理和の使い方

複数の条件をチェック

if (hasAdminAccess && hasSuperuserAccess) {
  console.log("管理者またはスーパーユーザーです");
}

「hasAdminAccess」が真(管理者アクセス権を持つ)または「hasSuperuserAccess」が真(スーパーユーザーアクセス権を持つ)の場合にメッセージを表示します。

短絡評価を利用して関数を実行

isLoggedIn || displayMessage();  

「isLoggedIn」が偽(ログインしていない)場合に「displayMessage()」関数を実行します

if文で書くと以下のようになります。

if(!isLoggedIn==false) displayMessage();

短絡評価を利用して値を設定

let displayName = user.name || 'Guest';

「user.name」が真(名前あり)の場合は「user.name」を「displayName」に設定。「user.name」が偽(nullやundefined等)の場合、「displayName」に「'Guest'」が設定されます。

if文で書くと以下のようになります。

let displayName;
if (user.name) {
    displayName = user.name;
} else {
    displayName = 'Guest';
}

【JavaScript】否定「!」の使い方

条件をチェック

if (!isLoggedIn) {
  console.log("ログインしていません");
}

「isLoggedIn」が偽(ログインしていない)場合にメッセージを表示します。

値を設定

let isOffline = !isOnline; 

この例では、isOnlineがtrueならisOfflineはfalseに、isOnlineがfalseならisOfflineはtrueになります。

if文で書くと以下のようになります。

if (isOnline) {
    isOffline = false;
} else {
    isOffline = true;
}

二重否定でブール値に強制的に変換

let value = 0;
console.log(!!value);  // falseを出力

value = "Hello";
console.log(!!value);  // trueを出力

二重否定は真偽値(boolean)を明示的に生成できます。値が存在するかどうかを厳密比較(===)などで判定したい場合や、関数がブール型の値を必ず返さなければならない場合などに使用できます。

@ハクト

サービス作り・デザイン好き。70年代生まれのWEBエンジニア。WEBパーツをCSSでカスタマイズしてコピペできるサービスを運営中「Pa-tu」。実装したWEBパーツやツールを利用してWEB情報やライフハックを発信してます。

Twitter