0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【typeof演算子】データ型を文字列として取得する際の書き方と注意点

Last updated at Posted at 2019-06-05

以前、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

以上です。

補足や訂正などありましたら、ぜひご教授いただければ嬉しいです。
最後まで見ていただきありがとうございます。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?