ホームページ  >  記事  >  ウェブフロントエンド  >  jsでオブジェクトが配列(関数)であるかどうかを判断する方法

jsでオブジェクトが配列(関数)であるかどうかを判断する方法

王林
王林転載
2020-03-13 10:25:235817ブラウズ

jsでオブジェクトが配列(関数)であるかどうかを判断する方法

1. typeof 演算子

例:

// 数值
typeof 37 === 'number';
  
// 字符串
typeof '' === 'string';
  
// 布尔值
typeof true === 'boolean';
  
// Symbols
typeof Symbol() === 'symbol';
  
// Undefined
typeof undefined === 'undefined';
  
// 对象
typeof {a: 1} === 'object';
typeof [1, 2, 4] === 'object';
  
// 下面的例子令人迷惑,非常危险,没有用处。避免使用它们。
typeof new Boolean(true) === 'object';
typeof new Number(1) === 'object';
typeof new String('abc') === 'object';
  
// 函数
typeof function() {} === 'function';

上記の例から、配列と null を除く typeof の使用はオブジェクト Except として判断されることがわかります。このため、他のすべては通常どおりに判断できます。

(推奨チュートリアル: javascript チュートリアル)

2. オブジェクトのinstanceof演算子とコンストラクター属性

この演算子は、オブジェクト指向と多少似ています。 JavaScript の関係。これを理解するには、まず JavaScript のオブジェクト指向を理解する必要があります。この演算子は、オブジェクトのプロトタイプ チェーンがコンストラクターのプロトタイプ オブジェクトを指しているかどうかを検出するためです。

例:

jsでオブジェクトが配列(関数)であるかどうかを判断する方法

3. Object.prototype.toString を使用して、数値かどうかを判断します

Object.prototype.toString.call( [] ) === '[object Array]' // true
  
Object.prototype.toString.call( function(){} ) === '[object Function]' // true

呼び出しを使用します。ここで toString 内のこれを obj を指すようにします。次に、判定を完了します

4。プロトタイプ チェーンを使用して判定を完了します

[].__proto__ === Array.prototype // true
  
var fun = function(){}
fun.__proto__ === Function.prototype // true

5。Array.isArray()

Array.isArray([])  // true

ECMAScript5 では、Array.isArray() を正式に導入します。 JavaScript 目的 値が配列であるかどうかを正確に検出することです。 IE9、Firefox 4、Safari 5、Opera 10.5、および Chrome はすべてこのメソッドを実装しています。ただし、IE8 より前のバージョンはサポートされていません。

推奨される関連ビデオ チュートリアル: JavaScript ビデオ チュートリアル

以上がjsでオブジェクトが配列(関数)であるかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。