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物件的。
實例:
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中文網其他相關文章!