ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の typeof はどのようなデータ型を返すことができますか?

JavaScript の typeof はどのようなデータ型を返すことができますか?

青灯夜游
青灯夜游オリジナル
2021-12-08 16:58:3512858ブラウズ

JavaScript では、typeof 演算子が返すことができるデータ型は、「未定義」、「オブジェクト」、「ブール」、「数値」、「文字列」、「シンボル」、「関数」などです。

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 メソッドの戻り値の違いを見てみましょう:

データ toStringtypeof"foo"Stringstringnew String(“foo”)Stringobject数値 ブール値BooleanDateエラー新しい配列(1, 2, 3)Arrayobjectobjectobjectその配列とtoString メソッド、RegExp、Date などの型を使用してエラーを正しく区別できます。 したがって、通常はこの方法を使用してデータ型を確認します。 [関連する推奨事項:
new Number( 1.2)
オブジェクト true
ブール値 new Boolean(true )
object new Date()
オブジェクト 新しいエラー()
オブジェクト
##/abc/g RegExp
new RegExp(“meow”) RegExp
JavaScript 学習チュートリアル

]

以上がJavaScript の typeof はどのようなデータ型を返すことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。