typeof操作符
typeof操作符用来检测变量的数据类型并且返回一个字符串来体现出该变量的数据类型。
console.log(typeof(1)); // number
console.log(typeof('1')); // string
console.log(typeof(true)); // boolean
console.log(typeof(null)); // object
var a;
console.log(typeof(a)); // undefined
cosnole.log(typeof(['1'])); // object
console.log(typeof({name:'1'})); // obejct
var jojo = function(){
return '承太郎';
};
console.log(typeof(jojo)) // function
由上述代码块中代码可以看出:
字符串string;数字返回number;布尔值返回boolean;
null返回object,js内null表示什么都没有,但是他也是一个对象。
undefined(未定义)是指没有赋值的变量,一个没有值的变量会返回undefined。
typeof一个对象则返回object。js数组是一种特殊类型的对象,所以也返回object。函数则返回function。
undefined和null的区别
上边检测各类型变量时可以看出typeof undefined是返回 undefined;typeof null是返回 object;他们到底有什么区别呢?
console.log(undefined == null); // true
console.log(undefined === null); // false
代码中可以看出双等于号的结果为true;三等于号结果为false;
在两个等于号的状态下返回true是因为这两个值都代表着无效的值,在规定中这两个值是相等的。
在三个等于号的情况下就很好理解了,从操作符部分可以看出他们的数据类型是不相同的,在全等状态下是要数据类型相同,所以返回false。