Javascript内蔵タイプ
5327 ワード
JavaScriptは7種類の内蔵タイプがあります.
空の値(null)
未定義(undefined)
ブール値(Boolean)
数字(number)
文字列(string)
オブジェクト(object)
記号(smbol、ES 6追加)
対象以外を総称して「基本タイプ」といいます.
私たちはtypeof演算子で値の種類を確認できます.返したのはタイプの文字列値です.面白いことに、この7つのタイプと彼らの文字列はそれぞれ対応していません.
nullはこの列ではないことに気づくかもしれませんが、それは比較的特殊で、typeofはその処理に問題があります.
私たちは複合条件でnull値を検出するタイプが必要です.
注:関数もJavaScriptの内蔵タイプです.正確には、それらはすべて「object」のサブタイプです.具体的には、関数は呼び出し可能なオブジェクトです.
JavaScriptは配列をサポートしています.配列も対象ですので、正確にはobjectのサブタイプです.
空の値(null)
未定義(undefined)
ブール値(Boolean)
数字(number)
文字列(string)
オブジェクト(object)
記号(smbol、ES 6追加)
対象以外を総称して「基本タイプ」といいます.
私たちはtypeof演算子で値の種類を確認できます.返したのはタイプの文字列値です.面白いことに、この7つのタイプと彼らの文字列はそれぞれ対応していません.
console.log(typeof undefined === "undefined"); //true
console.log(typeof true === "boolean"); //true
console.log(typeof 40 === "number"); //true
console.log(typeof "40" === "string"); //true
console.log(typeof {name:"lucky"} === "object"); //true
console.log(typeof Symbol() === "symbol"); //true
以上の6つのタイプは同じ名前の文字列の値が対応しています.記号はES 6に新しく加入したタイプです.nullはこの列ではないことに気づくかもしれませんが、それは比較的特殊で、typeofはその処理に問題があります.
console.log(typeof null === "object"); //true
正しく戻るのは「null」ですが、このバグは昔から、JavaScriptの中にはすでに20年近く存在しています.永遠に修復できないかもしれません.これはウェブシステムに影響を及ぼしていますので、「修復」はもっと多くのバグを生みます.私たちは複合条件でnull値を検出するタイプが必要です.
var a = null
console.log(!a && typeof a === "object"); //true
nullは「false」であり、typeofで検出すると「object」に戻ります.注:関数もJavaScriptの内蔵タイプです.正確には、それらはすべて「object」のサブタイプです.具体的には、関数は呼び出し可能なオブジェクトです.
JavaScriptは配列をサポートしています.配列も対象ですので、正確にはobjectのサブタイプです.
console.log(typeof [1,2,3] === "object"); //true