sai_dive IL

学んだことのアウトプットブログ

【JavaScript】データ型を調べる

データ型とは?

  • undefined, Boolean, Number, String, BigInt, Symbol, Object, Function, null等の値の型のこと

データ型を調べる

  • typeof演算子で調べることができる
  • JavaScriptは他の言語の浮動小数点型(Float型)と整数型(Integer型)がNumber型として扱われるので注意

MDNから引用

// 数値
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof(42) === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number';            // "Not-A-Number" であるにもかかわらず。
typeof Number('1') === 'number';    // Number は数値に型強制できない値を含めて、
typeof Number('shoe') === 'number'; // あらゆるものを数字に解析します。

typeof 42n === 'bigint';


// 文字列
typeof '' === 'string';
typeof 'bla' === 'string';
typeof `template literal` === 'string';
typeof '1' === 'string';        // 文字列内の数値は文字列型のままです。
typeof (typeof 1) === 'string'; // typeof は常に文字列を返します。
typeof String(1) === 'string';  // String は何でも文字列に変換するので、toString よりも安全です。


// 真偽値
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(1) === 'boolean'; // Boolean は、値が truthy か falsy かに基づいて変換します。

typeof !!(1) === 'boolean';      // ! (論理 NOT) 演算子 2 つの呼び出しは、Boolean() と同等です。


// シンボル
typeof Symbol() === 'symbol'
typeof Symbol('foo') === 'symbol'
typeof Symbol.iterator === 'symbol'


// Undefined
typeof undefined === 'undefined';
typeof declaredButUndefinedVariable === 'undefined';
typeof undeclaredVariable === 'undefined';


// オブジェクト
typeof {a: 1} === 'object';

// Array.isArray または Object.prototype.toString.call を使用して、
// 通常のオブジェクトと配列を区別します。
typeof [1, 2, 4] === 'object';

typeof new Date() === 'object';
typeof /regex/ === 'object'; // 過去の実装は正規表現を参照してください。


// 以下のようなものは、紛らわしく、危険で、無駄なものです。それらの使用を避けてください。
typeof new Boolean(true) === 'object';
typeof new Number(1) === 'object';
typeof new String('abc') === 'object';


// 関数
typeof function() {} === 'function';
typeof class C {} === 'function';
typeof Math.sin === 'function';

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/typeof