Optional ChainingとNullish Coalescing Operatorを使った空/未定義/null文字列の判定

2024-04-05

JavaScriptで空/未定義/null文字列をチェックする方法

厳格な等価演算子 (===) を使用する

空/未定義/null文字列は、厳格な等価演算子 (===) を使用してチェックできます。

const str = ""; // 空文字列
console.log(str === ""); // true
console.log(str === null); // false
console.log(str === undefined); // false

const str2 = null; // null
console.log(str2 === ""); // false
console.log(str2 === null); // true
console.log(str2 === undefined); // false

const str3 = undefined; // 未定義
console.log(str3 === ""); // false
console.log(str3 === null); // false
console.log(str3 === undefined); // true

この方法はシンプルで分かりやすいですが、空文字列とnull/undefinedを区別したい場合は、別の方法を使う必要があります。

typeof 演算子を使用して、変数の型をチェックできます。

const str = ""; // 空文字列
console.log(typeof str === "string"); // true

const str2 = null; // null
console.log(typeof str2 === "string"); // false
console.log(typeof str2 === "object"); // true

const str3 = undefined; // 未定義
console.log(typeof str3 === "string"); // false
console.log(typeof str3 === "undefined"); // true

この方法は、空文字列とnull/undefinedを区別することができます。

組み込み関数を使用する

JavaScriptには、空/未定義/null文字列をチェックする組み込み関数がいくつかあります。

  • String.prototype.length

文字列の長さを取得します。空文字列の場合、0を返します。

const str = ""; // 空文字列
console.log(str.length === 0); // true
const str = "   "; // 空白文字列
console.log(str.trim() === ""); // true
  • Object.is

2つの値が厳密に等しいかどうかをチェックします。

const str = ""; // 空文字列
console.log(Object.is(str, "")); // true
console.log(Object.is(str, null)); // false
console.log(Object.is(str, undefined)); // false

これらの組み込み関数は、特定の状況で役立ちます。

その他の方法

上記以外にも、空/未定義/null文字列をチェックする方法があります。

  • 三項演算子

三項演算子を使用して、空/未定義/null文字列かどうかを判定し、別の値を返すことができます。

const str = ""; // 空文字列
const result = str ? str : "空文字列です";
console.log(result); // "空文字列です"
  • 正規表現
const str = ""; // 空文字列
const regex = /^$/;
console.log(regex.test(str)); // true

これらの方法は、より複雑な処理が必要な場合に役立ちます。

JavaScriptで空/未定義/null文字列をチェックするには、いくつかの方法があります。 それぞれの方法の特徴と使い分けを理解し、状況に応じて適切な方法を選択することが重要です。




厳格な等価演算子 (===) を使用する

const str = ""; // 空文字列
console.log(str === ""); // true
console.log(str === null); // false
console.log(str === undefined); // false

const str2 = null; // null
console.log(str2 === ""); // false
console.log(str2 === null); // true
console.log(str2 === undefined); // false

const str3 = undefined; // 未定義
console.log(str3 === ""); // false
console.log(str3 === null); // false
console.log(str3 === undefined); // true

typeof 演算子を使用する

const str = ""; // 空文字列
console.log(typeof str === "string"); // true

const str2 = null; // null
console.log(typeof str2 === "string"); // false
console.log(typeof str2 === "object"); // true

const str3 = undefined; // 未定義
console.log(typeof str3 === "string"); // false
console.log(typeof str3 === "undefined"); // true
const str = ""; // 空文字列
console.log(str.length === 0); // true
const str = "   "; // 空白文字列
console.log(str.trim() === ""); // true
const str = ""; // 空文字列
console.log(Object.is(str, "")); // true
console.log(Object.is(str, null)); // false
console.log(Object.is(str, undefined)); // false
const str = ""; // 空文字列
const result = str ? str : "空文字列です";
console.log(result); // "空文字列です"
const str = ""; // 空文字列
const regex = /^$/;
console.log(regex.test(str)); // true

実行方法

上記のコードをJavaScriptファイルに保存し、ブラウザで開きます。 コンソールを開くと、結果が表示されます。




JavaScriptで空/未定義/null文字列をチェックするその他の方法

Optional Chainingは、nullまたはundefinedへのアクセス時にエラーが発生するのを防ぐために使用できる演算子です。

const obj = {
  name: "John Doe",
  age: 30,
};

const name = obj?.name; // "John Doe"
const age = obj?.age; // 30

// nullまたはundefinedの場合、デフォルト値を返す
const address = obj?.address?.city ?? "不明"; // "不明"

Optional Chainingは、nullまたはundefinedの可能性がある値を安全にアクセスする方法を提供します。

Nullish Coalescing Operatorは、左側のオペランドがnullまたはundefinedの場合に右側のオペランドを返す演算子です。

const name = "John Doe";
const age = 30;

const greeting = name ?? "名無し"; // "John Doe"
const unknownAge = age ?? "不明"; // 30

// nullまたはundefinedの場合のみデフォルト値を返す
const address = obj?.address?.city ?? "不明"; // "不明"

삼항演산자는 조건에 따라 두 개의 값 중 하나를 반환하는 연산자입니다.

const name = "John Doe";
const age = 30;

const greeting = name ? name : "名無し"; // "John Doe"
const unknownAge = age ? age : "不明"; // 30

// nullまたはundefinedの場合のみデフォルト値を返す
const address = obj?.address?.city ? obj?.address?.city : "不明"; // "不明"

삼항演산자는 다양한 조건에 따라 값을 반환할 수 있는 유연한 방법입니다.

.length 프로パティは、文字列の長さを返します。

const str = ""; // 空文字列

if (str.length === 0) {
  // 空文字列処理
}

.length プロパティは、空文字列かどうかを簡単にチェックする方法です。

.trim() 메서드는 문자열의 양쪽 끝에 있는 공백 문자를 제거합니다.

const str = "   "; // 공백 문자열

if (str.trim() === "") {
  // 공백 문자열 처리
}

.trim() 메서드는 공백 문자열かどうか를 체크하는 방법입니다.

비교 함수는 두 개의 값을 비교하여 부울 값을 반환합니다.

const str = ""; // 空文字列

if (str === "" || str === null || str === undefined) {
  // 空/未定義/null 문자열 처리
}

비교 함수는 다양한 조건을 사용하여 문자열을 체크할 수 있는 방법입니다.


javascript null is-empty


JavaScript、jQuery、およびキーイベントを使用してエスケープキーの押下を検出する

このチュートリアルを完了するには、以下のものが必要です。HTML と CSS の基本的な知識JavaScript の基本的な知識jQuery ライブラリの理解エスケープキーの押下を検出するには、以下の 2 つの方法があります。JavaScript の keydown イベントを使用する...


JavaScript、HTML、CSSで解説:固定ヘッダー時のアンカーリンク調整

Webページに固定ヘッダーを実装すると、ページスクロール時にヘッダーが画面上部に固定され、コンテンツが下にずれます。しかし、ヘッダーの高さ分だけコンテンツがずれるため、アンカーリンクをクリックした際に意図した位置に移動できない問題が発生します。...


Nodemonがファイルシステムを監視できない?「[nodemon] Internal watch failed: watch ENOSPC」エラーの解決策

原因ファイルシステムの制限: 使用しているファイルシステムに十分な空き容量がない場合、nodemonはファイルを監視できなくなります。ファイルシステムのアクセス権: nodemonが監視するファイルやディレクトリに対するアクセス権を持っていない場合、エラーが発生します。...


JavaScriptの非同期処理をマスターしよう! async/await と forEach ループの徹底解説

JavaScriptの async/await は非同期処理をより簡単に記述するための強力なツールです。一方、forEach ループは配列の要素を反復処理する便利な方法です。しかし、forEach ループ内で非同期処理を行う場合、async/await を直接使用することはできません。...


React useEffectでオブジェクトを比較する方法:浅い比較 vs 深い比較

ReactのuseEffectフックは、副作用処理を実行するために便利なツールです。しかし、オブジェクトを依存関係として渡す場合、オブジェクト自体の同一性比較ではなく、浅い比較しか行われない点に注意が必要です。このため、オブジェクトの内容が変更されても、useEffectが実行されない可能性があります。...


SQL SQL SQL SQL Amazon で見る



JavaScriptの標準関数でnull、undefined、空白の変数をチェックする方法

null と undefined はそれぞれ特別な値であり、他の値と厳密に等しくなりません。そのため、厳格な等価演算子 (===) を使用して、これらの値をチェックすることができます。空白 の場合は、文字列と比較する必要があります。typeof 演算子は、変数の型を返します。null は object 型、undefined は undefined 型、空白 は string 型を返します。