🦁

【JavaScript】typeof演算子の使い方

2022/08/04に公開

はじめに

この記事は学習ノートです。
JavaScriptのtypeof演算子について、調べたことをまとめました。
今回はちょっと短めです!

JavaScriptのデータ型に関する記事はコチラ👇
https://zenn.dev/miya_akari/articles/a1e47f94997b19

typeof演算子とは

  • 引数の型を返す
  • 異なる型の値を別々に処理したい、または素早く型をチェックしたいときに役立つらしい

構文

// 1. 演算子
typeof x
// 2. 関数スタイル
typeof(x)
// x は、型を返すオブジェクトまたはプリミティブ型を表す

括弧があってもなくても動作する。
詳しくは以下の記事で👇
https://ja.javascript.info/types#ref-237

使用例

typeof true; // => "boolean"
console.log(typeof true); // => "boolean"
console.log(typeof "JavaScript"); // => "string"

typeof 30 === "number"; // => true
typeof(30) === "number"; // => true
もう少し具体的な使用例
  // 与えられた年齢がティーンエイジャー(13~19歳)かどうか判断する関数
function isTeenager(age) {
  // まず"number"型かどうか判断する
  if(typeof age !== "number") {
      // "number"型じゃなかったら以下を返して終了
      return  "無効です!与えられた年齢は数字ではありません!";
  // number型なら以下を実行する
  } else if ( age >= 13 && age <= 19) {
      return true;
  } else {
      return false;
  }
}
isTeenager(14); // => true
console.log(typeof null); // => "object"(バグ)

https://jsprimer.net/basic/data-type/#fn_1:~:text=残念ながらtypeof nullが"object"となるのは、歴史的経緯のある仕様のバグ1です。

まとめ

  • typeof演算子は、変数にどの型が格納されているかを知ることができる
  • typeof xtypeof(x)、2つの書き方がある
  • typeof null"object"を返すけど、バグ。実際はオブジェクトではない

参考

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/typeof
https://jsprimer.net/basic/data-type/#data-type
https://ja.javascript.info/types#ref-237

Discussion