1. ホーム
  2. javascript

[解決済み] typeofとinstanceofの違いは何ですか、また、どのような場合にどちらを使うべきですか?

2022-03-22 22:32:37

質問

私の場合

callback instanceof Function

または

typeof callback == "function"

この違いは何ですか?

追加資料です。

JavaScript-Garden(ジャバスクリプト・ガーデン タイプオブ インスタンスオブ

解決方法は?

使用方法 instanceof はカスタムタイプ用です。

var ClassFirst = function () {};
var ClassSecond = function () {};
var instance = new ClassFirst();
typeof instance; // object
typeof instance == 'ClassFirst'; // false
instance instanceof Object; // true
instance instanceof ClassFirst; // true
instance instanceof ClassSecond; // false 

使用方法 typeof は、単純な組み込み型に使用します。

'example string' instanceof String; // false
typeof 'example string' == 'string'; // true

'example string' instanceof Object; // false
typeof 'example string' == 'object'; // false

true instanceof Boolean; // false
typeof true == 'boolean'; // true

99.99 instanceof Number; // false
typeof 99.99 == 'number'; // true

function() {} instanceof Function; // true
typeof function() {} == 'function'; // true

使用方法 instanceof は、複雑な組み込み型に使用します。

/regularexpression/ instanceof RegExp; // true
typeof /regularexpression/; // object

[] instanceof Array; // true
typeof []; //object

{} instanceof Object; // true
typeof {}; // object

そして最後が少し厄介です。

typeof null; // object