首頁  >  文章  >  web前端  >  js如何判斷一個物件是否是數組(函數)

js如何判斷一個物件是否是數組(函數)

王林
王林轉載
2020-03-13 10:25:235814瀏覽

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';

從上面的實例我們可以看出,利用typeof除了array和null判斷為object外,其他的都可以正常判斷。

(推薦教學:javascript教學

2、instanceof操作符和物件的constructor 屬性

這個運算子和JavaScript中物件導向有點關係,了解這個就先得了解JavaScript中的物件導向。因為這個操作符是檢測物件的原型鍊是否指向建構函數的prototype物件的。

實例:

js如何判斷一個物件是否是數組(函數)

3、使用Object.prototype.toString 來判斷是否是數

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

這裡使用call來使toString 中this 指向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中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除