参考サイト:
データの種類
- 弦
- ブーリアン
- 数
- オブジェクト
- 関数
- (ES6のシンボル(新))シンボル
オブジェクトの種類
- オブジェクト
- 日付
- アレイ
- 通常の正規表現
- 関数
これは、データ値のいずれかのタイプが含まれていません
- ヌル
- 未定義
JavaScriptのデータ型のマップ
typeof演算子
あなたは、JavaScriptの変数typeof演算の種類によってデータを表示することができます。
constructorプロパティ
コンストラクタconstructorプロパティは、すべてのJavaScriptの変数を返します。
JavaScriptの型変換
jsの変数は新しい変数または他のデータ型に変換することができます
変換方法
- 変換関数JSを使用することにより
- JS自体が自動的に切り替えることができ
数ターン文字列
- 文字列()
- toString()
- toExponential()は、指数表記へのオブジェクトの値を変換します。
- toFixed()デジタル文字列に結果の小数点以下の指定された数を有する変換されます。
- toPrecision(指定された長さのための)デジタルフォーマット。
ブール转文字列
- 文字列()
- toString()
数ターン文字列
- 数()
- parseFloatは()は、文字列を解析し、浮動小数点数を返します。
- parseInt()は、文字列を解析して整数値を返します。
自動変換タイプ
- 「間違った」データ型を操作するためのJavaScriptの試みは、自動的に「正しい」データ型に変換されます。
5 + null // 返回 5 null 转换为 0
"5" + null // 返回"5null" null 转换为 "null"
"5" + 1 // 返回 "51" 1 转换为 "1"
"5" - 1 // 返回 4 "5" 转换为 5
- 単項+
演算子+は、デジタル変数を変換するために使用することができます。
var y = "5"; // y 是一个字符串
var x = + y; // x 是一个数字
- デジタル日付に変換
単項+もう一つの一般的な用途はデジタルに変換された日(日)のキャストオブジェクト型で、結果は、Unixタイムスタンプを返します。
var time = new Date()
+time
明示的な文字列を解析
デジタル必須リターン結果の文字列を変換するために数解像度の文字列とはデジタルです。しかし、構文解析と変換の間に有意な違いがあります。例えば:
var a = "42"
var b = "42px"
Number(a) //42
parseInt(a) //42
Number(b) //NaN
parseInt(b) //42
分析は、非数値文字が停止されている場合は、左から右に解決、文字列が数字以外の文字が含まれていることができます。変換は、それ以外の場合がNaNを返すために失敗し、数字以外の文字を使用できません。
parseFloatは()関数をフロートすることができ、文字列を解析します。2番目のパラメータはベースとして指定しない限りのparseIntからES5開始()は、小数点数のデフォルトに変換されます。
nullとundefined間の等価比較
nullとundefined ==での暗黙的なキャスト別すべき一つのことであることを意味し、等しい== nullとundefinedで。
-
マスター「抽象等しい比較アルゴリズム、」なぜ取り壊すために読者を行う[] ==![] trueを返します。
-
「」、「\ N」(または「an」は、他の組み合わせでスペース)等が空の文字列に変換され、0はToNumber必須です。
(元の値に)たToPrimitive
たToPrimitive演算子は値、及び所望のタイプのオプションのパラメータを受け入れます。非オブジェクト・タイプにパラメータ値にされたToPrimitive演算子。オブジェクトが複数のプリミティブ型に変換する能力を持っている場合は、そのタイプを提案することが予想オプションのタイプを使用することができます。次の表に従って変換を完了するために、
注:NULLがユニークなタイプ値はtypeof演算検出物体によって実質的に戻される(つまり「実質的に」単語に注意してください)
具体的な理由:
不同的对象在底层都表示为二进制
在JavaScript中二进制前三位为0的话都会被判断为object类型
null的二进制表示全是0,自然前三位也是0
所以 typeof null === “object”