很多人把typeof 称为运算符,但我更喜欢称为“数据类型检测 - 运算符”。它的作用是用来检测一个数据的类型,返回这个类型对应的字符串。
它的语法: typeof 数据 / typeof(数据) 2种效果是一样的。
typeof有一个返回值,返回的结果与系统当中定义的类型是有区别的。
系统定义的数据类型 typeof返回的数据类型
String string
Number number
Boolean boolean
Undefined undefined
Null object
Object object
来点例子
var s1='song';
console.log(typeof s1); // string
var s2 = 21;
console.log(typeof s2); // number
var s3 = false;
console.log(typeof s3); //boolean
var s4 = undefined;
console.log(typeof s4); //undefined
var s5 = null;
console.log(typeof s5); //object
var s6 = {};
console.log(typeof s6); //object
var s7 = function(){alert(1)};
console.log(s7); //function
null的typeof的结果是object,函数的typeof结果为function,但是JS当中没有给函数定义一个类型 。
总结: 区别就是 1)一个是首字母大小,一个是全小写 2)Null返回的值是object而非null
Null 为什么也会返回一个object呢?
有些资料解释说这是JS留下的一个BUG,是一个历史遗留问题。
Pritce:
1、typeof的语法应该如何用?
2、typeof检测出的返回值和系统当中定义的类型有哪一些区别?
3、Null 为什么也返回Object?