深入理解typeof操作符

时间:2023-03-08 22:03:30

typeof可以检测数据的类型

typeof返回结果的其实是字符串:可以通过以下测试出来

console.log( typeof(typeof(a))); // string

typeof返回的数据类型有6种:

1.number-----数字类型的操作数typeof(123);

 NaN属于number类型。虽然是非数,但是非数也是数字的一种。

2.string--------字符串类型的操作数typeof('123');

3.boolean-----布尔值如:typeof(true);

4.object--------对象,数组,null,比如typeof(window),typeof(document),typeof(null);

其实null并不是一种对象,只是因为历史遗留性的问题,null通常用来作为对象占位符,所以被浏览器归到了object里面了。

5.function-----函数类型,比如typeof(eval),typeof(Date),typeof(Number),typeof(Object).

内置构造函数的分类
① ECMAScript核心语法自带内置构造函数: 有一部分内置构造函数:Function、 Object、 Array、 String、 Number、 Boolean、 RegExp、 Error、 Date
② 宿主环境: 也会支持一部分构造函数 例如Image。

6.undefined--未定义的变量,函数或者undefined

 注意:typeof测试任何变量都不会报错,未定义的变量会返回字符串undefined

例题:

var a = typeof undefined == typeof NULL;
console.log(a); //true
// 因为javascript严格区分大小写,这里的NULL不等于null,这里的NULL为undefined