「if」ステートメントの「some_variable」をチェックすることは、「unknown」と「null」をチェックすることと同じですか?

Susan Sarandon
リリース: 2024-10-30 22:51:03
オリジナル
225 人が閲覧しました

Is Checking `some_variable` in an `if` Statement Equivalent to Checking for `undefined` and `null`?

JavaScript の未定義または Null 変数の条件チェック

JavaScript では、変数が未定義または Null であるかどうかをチェックする必要があることがよくあります。一般的なアプローチには、次のコード パターンが含まれます:

<code class="javascript">if (typeof(some_variable) != 'undefined' && some_variable != null) {
  // Do something with some_variable
}</code>
ログイン後にコピー

ただし、このパターンは冗長になる可能性があります。このチェックを最適化するために、一部の開発者はコードを次のように単純化することを提案しています。

<code class="javascript">if (some_variable) {
  // Do something with some_variable
}</code>
ログイン後にコピー

この短いバージョンは論理的に見えますが、元のコードとの同等性について重要な疑問が生じます。

2 つのアプローチ

違いは 2 番目のコード パターンの動作にあります。 some_variable が未定義の場合、Firebug は条件を評価するときにエラーをスローします。これは、2 番目のパターンは変数が宣言されていると想定しているのに対し、最初のパターンは宣言された変数と宣言されていない変数の両方を処理することを意味します。

代替ソリューション

null または未定義の変数をチェックするより効率的で一貫した方法

<code class="javascript">if (some_variable == null) {
  // Do something with some_variable
}</code>
ログイン後にコピー

このコード スニペットは、宣言を必要とせず、Firebug で実行時エラーを引き起こすことなく、変数が null または未定義であることを正確に識別します。

追加メモ

  • この簡素化されたアプローチは、既存のオブジェクトのオプションの引数やプロパティのチェックなど、特定のシナリオでうまく機能します。
  • これは、空の値または false の値をチェックすることとは異なり、別のアプローチが必要になります。
  • null および未定義のチェックを除き、厳密な等価性チェックには === を使用することが一般的に推奨されます。

最新の JavaScript 代替手段

最新のブラウザでは、Nullish 合体演算子が使用されます。 (??) および論理 null 代入 (??=) は、変数が null または未定義の場合にデフォルト値を割り当てる簡潔な方法を提供します。

<code class="javascript">a.speed ??= 42; // Sets default speed to 42 if null or undefined</code>
ログイン後にコピー

以上が「if」ステートメントの「some_variable」をチェックすることは、「unknown」と「null」をチェックすることと同じですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート