JavaScript では、typeof 演算子が返すことができるデータ型は、「未定義」、「オブジェクト」、「ブール」、「数値」、「文字列」、「シンボル」、「関数」などです。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
typeof
演算子を使用して、変数のデータ型を返します。
各データ型に対応する typeof の値を見てみましょう:
データ型 |
結果 |
未定義 |
「未定義」 |
#Null#「オブジェクト」 |
|
ブール値
"ブール値" |
|
数値
"数値" |
|
文字列
"文字列" |
| ##シンボル (ECMAScript 6 の新機能)
"シンボル" |
| ホスト オブジェクト (ブラウザなどの JS 環境によって提供される)
実装依存 |
| 関数オブジェクト
"関数" | | 他のオブジェクト
"オブジェクト" |
|
特定のインスタンスを見てください:// Numbers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // 尽管NaN是"Not-A-Number"的缩写,意思是"不是一个数字"
typeof Number(1) === 'number'; // 不要这样使用!
// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof返回的肯定是一个字符串
typeof String("abc") === 'string'; // 不要这样使用!
// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // 不要这样使用!
// Symbols
typeof Symbol() === 'symbol';
typeof Symbol('foo') === 'symbol';
typeof Symbol.iterator === 'symbol';
// Undefined
typeof undefined === 'undefined';
typeof blabla === 'undefined'; // 一个未定义的变量,或者一个定义了却未赋初值的变量
// Objects
typeof {a:1} === 'object';
// 使用Array.isArray或者Object.prototype.toString.call方法可以从基本的对象中区分出数组类型
typeof [1, 2, 4] === 'object';
typeof new Date() === 'object';
// 下面的容易令人迷惑,不要这样使用!
typeof new Boolean(true) === 'object';
typeof new Number(1) ==== 'object';
typeof new String("abc") === 'object';
// 函数
typeof function(){} === 'function';
typeof Math.sin === 'function';
ログイン後にコピー
We will find 問題の 1 つは、typeof がデータ型を決定する際に正確ではないことです。たとえば、配列、正規表現、日付、オブジェクトの戻り値の typeof はすべてオブジェクトであるため、エラーが発生します。
したがって、型を判断する typeof に基づいて、さらにデータ型を判断するために
Object.prototype.toString
メソッドも使用する必要があります。
同じデータ型の場合の、toString メソッドと typeof メソッドの戻り値の違いを見てみましょう:
データ toString | typeof |
|
"foo"
String | string |
| new String(“foo”)
String | object |
new Number( 1.2) |
数値
オブジェクト |
|
true |
ブール値
ブール値 |
|
new Boolean(true ) |
Boolean
object |
|
new Date() |
Date オブジェクト |
|
新しいエラー() |
エラー
オブジェクト |
| 新しい配列(1, 2, 3) | Array
object |
##/abc/g |
RegExp |
object
|
new RegExp(“meow”) |
RegExp |
object
|
| その配列とtoString メソッド、RegExp、Date などの型を使用してエラーを正しく区別できます。 | したがって、通常はこの方法を使用してデータ型を確認します。
[関連する推奨事項:
JavaScript 学習チュートリアル
]
以上がJavaScript の typeof はどのようなデータ型を返すことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。