[解決済み] JavaScriptのNullとundefinedのチェックと==と===の違いについて
質問
-
ある変数が
null
またはundefined
とはどのような違いがあるのでしょうか?null
とundefined
? -
とはどのような違いがあるのでしょうか?
==
と===
(Googleで"==="を検索するのは難しい)?
解決方法は?
<ブロッククオート
ある変数が
null
または
undefined
...
は、変数
null
:
if (a === null)
// or
if (a == null) // but see note below
...ただし、後者は
a
は
undefined
.
それは
undefined
:
if (typeof a === "undefined")
// or
if (a === undefined)
// or
if (a == undefined) // but see note below
...しかし、もう一度言いますが、最後のものは曖昧であることに注意してください。
a
は
null
.
さて、上記にもかかわらず 通常の という事実を利用して、それらをチェックする方法です。 ファルシー :
if (!a) {
// `a` is falsey, which includes `undefined` and `null`
// (and `""`, and `0`, and `NaN`, and [of course] `false`)
}
で定義されています。 ToBoolean を仕様に追加しました。
...そして、その違いは何ですか?
null
とundefined
?
どちらも通常、何かがないことを示すために使われる値です。
undefined
はより一般的なもので、他の値が割り当てられるまでの変数のデフォルト値として、関数が呼び出されたときに提供されていない関数の引数の値として、オブジェクトが持っていないプロパティを要求したときに得られる値として使用されます。しかし、これらの状況すべてにおいて、明示的に使用することもできます。(オブジェクトがプロパティを持たないことと、プロパティに値
undefined
という値で関数を呼び出すのとは違います。
undefined
を引数に取ることと、その引数を完全に外すことです)。
null
よりも若干具体的です。
undefined
: これは空白のオブジェクト参照です。JavaScriptはもちろん疎型ですが、JavaScriptが相互作用するものすべてが疎型であるわけではありません。ブラウザの DOM のような API が、空白のオブジェクト参照を必要とする場合、私たちは
null
ではなく
undefined
. そして同様に、DOM の
getElementById
操作はオブジェクトの参照を返します - 有効なもの(DOM要素を見つけた場合)、または
null
(そうでない場合)。
興味深いのは(そうでなくても)、それらは独自の型であるということです。つまりは
null
はNull型の唯一の値であり
undefined
は未定義型における唯一の値である。
と"=="の違いは何ですか?
両者の違いは、ただ一つ
==
は型の強制を行い、値を一致させようとします。
===
を使用しません。ですから例えば
"1" == 1
は真であり、なぜなら
"1"
に強制する。
1
. しかし
"1" === 1
は
偽
というのは、型が一致しないからです。(
"1" !== 1
が真になる) の最初の(本当の)ステップは
===
は "オペランドの型は同じか" で、答えが "no"の場合、結果は
false
. もし型が同じなら、それはまさに次のようになります。
==
が行う。
型の強制はかなり複雑なルールを使うので、意外な結果になることがあります(例えば。
"" == 0
は真)。
詳しくは仕様書をご覧ください。
関連
-
Vueのクラススタイルの使い方の詳細
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】(Google Map API) Geocodeは以下の理由で成功しませんでした。REQUEST_DENIED
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
JavaScriptのクロージャの説明
-
Vueにシンプルなメモ帳機能を実装
-
JavaScriptの配列共通メソッド解説
-
Vueの「データを聴く」原則を解説
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
[解決済み] JavaScriptのnullとundefinedの違いは何ですか?
-
[解決済み] nullはなぜオブジェクトなのか、nullとundefinedの違いは何ですか?
-
[解決済み] 変数 === undefined vs. typeof 変数 === "undefined"