一切(引用类型)都是对象。
一、值类型
值类型包括string、number、boolean、undefined、null
二、引用类型
引用类型包括对象(object)、函数(function)、数组(array)
三、typeof操作符
作用:验证变量是什么数据类型。
//值类型
console.log(typeof 'a');//string
console.log(typeof 10);//number
console.log(typeof true);//boolean
console.log(typeof undefined);//undefined
console.log(typeof null);//object
//引用类型
var obj = {'a':'张三','b':'李四'};
console.log(typeof obj);//object
var arr = ['a',10,true,undefined,null];
console.log(typeof arr);//object
var fn = function(){};
console.log(typeof fn);//function
从上述代码中,可以看出,typeof操作符可以判断出值类型数据(string、number、boolean、undefined),但typeof null是object;对引用类型数据的判断就显得无力,对象、数组都是object,函数typeof是function。所以,对引用类型的判断要用instanceof。
四、一切都是对象
用instanceof看个例子:
从上述代码中,可以看出,对象是对象,数组是对象,函数也是对象。所以一句话总结:一切(引用类型)都是对象。
抛出问题:
typeof数组的时候,输出object;typeof函数的时候,却输出function,为什么不是输出object?函数不是也是对象嘛?