一、对象、数组、函数区别
javaScript中对象包括狭义对象(object)、数组(array)、函数(function),数组是一个使用整数和length键名的常规对象,同时数组继承了Array.prototype中操作数组的一些方法,如push(),shift()等;而函数则是附加了可被调用属性的常规对象。
二、typeof区分
在实际使用中,我们常用typeof区分数据类型,以下是typeof对象、数组、函数的实例:
typeof [] //"object"
typeof {} //"object”
typeof function(){} //"function"
从以上例子可知,typeof并不能区分数组与object,实际使用中需要使用其他方法加以区分。
三、instanceof区分
instanceof是区分数据类别的另一种方法,实例如下:
[] instanceof Object //true
[] instanceof Array //true
[] instanceof Function //false
{} instanceof Object //true
{} instanceof Array //false
{} instanceof Function //false
function(){} instanceof Object //true
function(){} instanceof Array //false
function(){} instanceof Function //true
以上可知,三者instanceof Object结果都是true,而instanceof Array和instanceof Function可以区分三者,所以实际使用中如果要区分三者,可以使用instanceof。