首頁 > web前端 > js教程 > 主體

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

王林
發布: 2020-03-13 10:25:23
轉載
5834 人瀏覽過

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
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板