以前、NaNを使った条件分岐についてという記事を書き、大変ありがたいことにコメント欄にてご指摘を頂けました。
勉強になりましたので、今回はコメントでいただきましたtypeof演算子について記述します。
#typeof演算子とは
与えられた変数、リテラルのデータ型を文字列として取得できます。
書式は次の通りです。
typeof 値
値: 数字、文字列、真偽型の値などが入ります。
サンプルコード
let num = 1;
console.log(typeof num); //結果: number
let str = 'おはよう';
console.log(typeof str); //結果: string
let flag = false;
console.log(typeof flag); //結果: boolean
let u =undefined;
console.log(typeof u); //結果: undefined
条件分岐にも当てはめられます。
let num = 1;
if(typeof num === 'number';) { //numが数値型の場合true
//実行したい処理
}
##注意点
ただ、typeof演算子で識別できるのは、文字列、数値、真偽値の様な基本データ型に限定されます。
配列や日付、正規表現,null等は、一様に「object」として見なされます。
また、文字列、数値、真偽値をラッパーオブジェクトとして宣言した時も同様に「object」として見なされます。
(少し話は逸れますが、真偽型はBooleanコンストラクターで生成することもできますが、挙動に誤解を招く恐れがある為、原則として使用しません)
サンプルコード
let ary = ['javascript', 'Vue.js', 'typescript'];
console.log(typeof ary); //結果: object
let obj = {a: 100, b: 200}
console.log(typeof obj); //結果: object
let ex = /d(b+)d/g;
console.log(typeof ex); //結果: object
let flag2 = new Boolean(false);
console.log(typeof flag2); //結果: object
以上です。
補足や訂正などありましたら、ぜひご教授いただければ嬉しいです。
最後まで見ていただきありがとうございます。