JSチュートリアル

JSホーム JSの紹介 JSどこへ JS出力 JSステートメント JS構文 JSコメント JS変数 JS Let JSConst JSオペレーター JS算術 JS割り当て JSデータ型 JS関数 JSオブジェクト JSイベント JS文字列 JS文字列メソッド JS文字列検索 JS文字列テンプレート JS番号 JS番号メソッド JSアレイ JS配列メソッド JS配列ソート JSアレイの反復 JSアレイ定数 JSの日付 JSの日付形式 JS DateGetメソッド JS日付設定メソッド JS数学 JSランダム JSブール値 JSの比較 JS条件 JSスイッチ JSループFor JSループフォーイン JSループの JSループWhile JSブレイク JSIterables JSセット JSマップ JS Typeof JS型変換 JSビット単位 JS RegExp JSエラー JSスコープ JSホイスト JS厳密モード JSこのキーワード JSアロー関数 JSクラス JS JSON JSデバッグ JSスタイルガイド JSのベストプラクティス JSの間違い JSパフォーマンス JS予約語

JSバージョン

JSバージョン JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE /エッジ JSの歴史

JSオブジェクト

オブジェクト定義 オブジェクトのプロパティ オブジェクトメソッド オブジェクト表示 オブジェクトアクセサー オブジェクトコンストラクター オブジェクトのプロトタイプ オブジェクト反復可能 オブジェクトセット オブジェクトマップ オブジェクトリファレンス

JS関数

関数の定義 関数パラメーター 関数の呼び出し 関数呼び出し 機能適用 関数クロージャ

JSクラス

クラスイントロ クラス継承 クラス静的

JS非同期

JSコールバック JS非同期 JSの約束 JS Async / Await

JS HTML DOM

DOMイントロ DOMメソッド DOMドキュメント DOM要素 DOM HTML DOMフォーム DOM CSS DOMアニメーション DOMイベント DOMイベントリスナー DOMナビゲーション DOMノード DOMコレクション DOMノードリスト

JSブラウザBOM

JSウィンドウ JS画面 JSロケーション JSの歴史 JSナビゲーター JSポップアップアラート JSタイミング JSクッキー

JS Web API

WebAPIイントロ WebフォームAPI Web履歴API WebストレージAPI WebワーカーAPI Web Fetch API Web Geolocation API

JS AJAX

AJAXイントロ AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

JS JSON

JSONイントロ JSON構文 JSONとXML JSONデータ型 JSON解析 JSON文字列化 JSONオブジェクト JSON配列 JSONサーバー JSON PHP JSON HTML JSON JSONP

JSとjQuery

jQueryセレクター jQuery HTML jQuery CSS jQuery DOM

JSグラフィックス

JSグラフィックス JSキャンバス JSPlotly JS Chart.js JSグーグルチャート JS D3.js

JSの例

JSの例 JS HTML DOM JSHTML入力 JSHTMLオブジェクト JSHTMLイベント JSブラウザ JSエディター JS演習 JSクイズ JS証明書

JSリファレンス

JavaScriptオブジェクト HTMLDOMオブジェクト


JavaScript typeof


JavaScriptには、値を含めることができる5つの異なるデータ型があります。

  • string
  • number
  • boolean
  • object
  • function

オブジェクトには6つのタイプがあります。

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

そして、値を含めることができない2つのデータ型:

  • null
  • undefined

演算子のタイプ

演算子を使用してtypeof、JavaScript変数のデータ型を見つけることができます。

typeof "John"                 // Returns "string"
typeof 3.14                   // Returns "number"
typeof NaN                    // Returns "number"
typeof false                  // Returns "boolean"
typeof [1,2,3,4]              // Returns "object"
typeof {name:'John', age:34}  // Returns "object"
typeof new Date()             // Returns "object"
typeof function () {}         // Returns "function"
typeof myCar                  // Returns "undefined" *
typeof null                   // Returns "object"

以下を遵守してください:

  • NaNのデータ型は数値です
  • 配列のデータ型はオブジェクトです
  • 日付のデータ型はオブジェクトです
  • nullのデータ型はオブジェクトです
  • 未定義の変数のデータ型は未定義です *
  • 値が割り当てられていない変数のデータ型も未定義です*

typeofJavaScriptオブジェクトが配列(または日付)であるかどうかを判別するために使用することはできません。



プリミティブデータ

プリミティブデータ値は、追加のプロパティやメソッドを含まない単一の単純なデータ値です。

typeof演算子は、次のプリミティブ型のいずれかを返すことができます

  • string
  • number
  • boolean
  • undefined

typeof "John"              // Returns "string"
typeof 3.14                // Returns "number"
typeof true                // Returns "boolean"
typeof false               // Returns "boolean"
typeof x                   // Returns "undefined" (if x has no value)

複雑なデータ

演算子は、typeof次の2つの複合型のいずれかを返すことができます。

  • function
  • object

演算子は、typeofオブジェクト、配列、およびnullに対して「object」を返します。

演算子は関数のtypeof「オブジェクト」を返しません。

typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
typeof null                  // Returns "object"
typeof function myFunc(){}   // Returns "function"

JavaScriptでは配列はオブジェクトであるため、演算子は配列に対して「」を返しtypeofます。object


typeofのデータ型

typeof演算子は変数ではありませんオペレーターです。演算子(+-* /)にはデータ型がありません。

ただし、typeof演算子は常に文字列(オペランドの型を含む)を返します。


コンストラクタープロパティ

このconstructorプロパティは、すべてのJavaScript変数のコンストラクター関数を返します。

"John".constructor                // Returns function String()  {[native code]}
(3.14).constructor                // Returns function Number()  {[native code]}
false.constructor                 // Returns function Boolean() {[native code]}
[1,2,3,4].constructor             // Returns function Array()   {[native code]}
{name:'John',age:34}.constructor  // Returns function Object()  {[native code]}
new Date().constructor            // Returns function Date()    {[native code]}
function () {}.constructor        // Returns function Function(){[native code]}

コンストラクタープロパティをチェックして、オブジェクトがArray (「配列」という単語を含む)であるかどうかを確認できます。

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

または、さらに簡単に、オブジェクトが配列関数であるかどうかを確認できます。

function isArray(myArray) {
  return myArray.constructor === Array;
}

コンストラクタープロパティをチェックして、オブジェクトが Date(「日付」という単語を含む)であるかどうかを確認できます。

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

または、さらに簡単に、オブジェクトがDate関数であるかどうかを確認できます。

function isDate(myDate) {
  return myDate.constructor === Date;
}


未定義

JavaScriptでは、値のない変数の値はですundefinedタイプもundefinedです。

let car;    // Value is undefined, type is undefined

値をに設定することにより、任意の変数を空にすることができますundefinedタイプもになりますundefined

car = undefined;    // Value is undefined, type is undefined

空の値

空の値は。とは何の関係もありませんundefined

空の文字列には、有効な値と型の両方があります。

let car = "";    // The value is "", the typeof is "string"

ヌル

JavaScriptnullでは「何もない」です。存在しないもののはずです。

残念ながら、JavaScriptでは、のデータ型nullはオブジェクトです。

typeof nullオブジェクトであるJavaScriptのバグと見なすことができます。する必要がありますnull

次のように設定すると、オブジェクトを空にできますnull

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null;    // Now value is null, but type is still an object

次のように設定して、オブジェクトを空にすることもできますundefined

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined;   // Now both value and type is undefined

UndefinedとNullの違い

undefinednull値は同じですが、タイプが異なります。

typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true