JavaScriptで宣言されていない変数のタイプ:それは何ですか?
JavaScriptで宣言されていない変数のタイプとは何か考えたことはありますか?私が知っている、最初に頭に浮かぶかもしれないことは、宣言されていない変数がどのようにして型を持つことができるのかということです。はい、JavaScriptでは可能です。
JavaScriptで宣言されていない変数のタイプとは何か考えたことはありますか?私が知っている、最初に頭に浮かぶかもしれないことは、宣言されていない変数がどのようにして型を持つことができるのかということです。はい、JavaScriptでは可能です。

それを理解するために、JavaScript の型を理解することから始めましょう。JavaScript には 7 つの組み込み型があります。それらは次のとおりです。
- ヌル
- 未定義
- ブーリアン
- 数
- string型
- object
- symbol (added on ES6)

値が割り当てられている各変数にはタイプがあります。以下にリストされているコードについて考えてみましょう。
var foo = 9; console.log(typeof (foo)); // number var koo; console.log(typeof (koo)); // undefined var too = 'Infragistics'; console.log(typeof (too)); // string
上記のスニペットでわかるように、値が割り当てられていない場合、変数のタイプは未定義です。

ここまで順調に進んでいるため、値が割り当てられていない変数は未定義であることがわかりました。 次のコードスニペットを考えてみましょう。
var koo; console.log(koo); // undefiend console.log(typeof (koo)); // undefined
変数kooを作成しましたが、値の割り当てはしていません。 これで、 koo の値とタイプの両方が undefined に設定されます。

undefined に関連付けられた type と value を理解したところで、null に移りましょう。JavaScript では、null はプリミティブ型です。 ただし、null 値の型は object です。次に示すコードについて考えてみます。
var foo = null; console.log(foo); // null console.log(typeof (foo)); // object
JavaScriptでnull値の型がobjectであるというレガシーバグと考えることができます。

最後に、JavaScriptでは宣言されていない変数にも型があります。宣言された変数の型は未定義です。
console.log(foo);// error foo is not defined console.log(typeof (foo)); // undefined
宣言されていない variable の値を読み取ると、JavaScript は "not defined" というエラーを返し、その型を未定義として返します

さらに、JavaScriptの世界では、未定義は未定義と同じではないことに注意してください。 これで、JavaScriptのさまざまなプリミティブタイプを理解できたと思います。