使用typeof()或者typeof进行基本数据类型检测( typeof(X)等于typeof X 返回的是数据类型)
数据类型有:基本数据类型,字符串(string),布尔值(true/false),未定义undefined,null(空值),数组(array),对象类型,函数(function(){}) ,正则表达式。
<script type="text/javascript">
console.log(typeof 4); //number
console.log(typeof (4));//number
console.log(typeof "str");//字符串
console.log(typeof true);//布尔值boolean
console.log(typeof undefined);//未定义undefined
console.log(typeof a);//a是未定义的变量,所以就是undefined。
console.log(typeof null);//空值,对象类型
console.log(typeof []);//数组,对象类型
console.log(typeof {});//对象类型
console.log(typeof function(){});//函数,function
console.log(typeof /a/);//正则表达式,对象(浏览器不同,有可能返回function)
</script>
以上所有都是基本数据类型,只有基本数据类型才可以使用 typeof()或者typeof 来返回所属的是什么类型数据。
//引用类型只能使用 instanceof
//使用instanceof(X) 或者 instanceof X 检测数据类型
//翻译为:[] 是 Array的实例,返回true
console.log([] instanceof Array);//[] 是 Array的实例,返回true
console.log([] instanceof (Object));//[]是Object的实例,返回true
console.log({} instanceof Object);//{}是Object的实例,返回true
console.log({} instanceof Array);//{}不是 Array的实例,返回false
console.log(1 instanceof Number);//基本数据类型无法使用instanceof 进行检测数据类型,因为基本数据类型使用instanceof进行检测,结果都是返回false。
document.write(typeof null);//先判断Null是什么事数据类型,再来决定返回什么类型的实例。
document.write(null instanceof Object);//先判断null是什么数据类型。再来决定返回什么类型的实例。
null是Null类型,属于基本类型,但是typeof null 返回的是字符串'object';instanceof不能检测基本数据类型,只要是基本数据类型和instanceof连用,返回的都是false。