1 typeof 的使用;这是一个运算符,不是方法
1.1 检测数据类型,返回的结果是一个字符串类型。有六种可能:number boolean string object function undefined
注意 typeof(null) 返回的是 : object
1.2 typeof 可以用于被声明 或者未被声明 的变量;但是未被声明的变量不能用其他运算符运算,之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。
1.3 对于基本数据类型(Number Boolean String null undefined) 以及引用类型 object 的 typeof 值
1.3.1 类 : Object Function Array String Boolean Number Date ;这些未初始化为实例的类的 typeof 类型为 function
1.3.2 对象的创建方式是用关键字 new 后面跟上实例化的类的名字,当将一个函数通过 new 实例化之后,那么就创建了一个对象
1.3.3 基本数据类型的 typeof 的值
2 null undefined
2.1 null 是一个表示"无"的对象,转化为数值的时候值为 0;典型的用法是:
-
用来初始化一个变量,该变量将来可能会被赋值成一个对象
-
用来和一个已经初始化的对象进行比较,这个变量可以是一个对象,也可以不是一个对象
-
当函数的参数期望是对象时,被用作参数传入
-
当函数返回值期望是对象时,被当做返回值输出
-
删除事件绑定,事件本身是一个 null ,是一个空的对象,可以添加
-
作为对象原型链的终点
2.2 undefined 是一个表示"无"的原始值,转化为数值的时候值为 NaN ;典型用法是:
-
变量被声明了,但是没有赋值,那么该变量的值就是 undefined
-
调用一个函数的时候,如果应该提供的参数没有提供,那么该参数默认是 undefined
-
如果一个对象的属性没有赋值,那么该属性值为 undefined
-
函数没有返回值的时候,默认返回 undefined;
2.3 如何区分二者?
-
== 运算符只比较值,不进行类型的比较,比较之前会进行隐式转化,null==undefined 返回 true.
-
=== 区分两者,不仅仅比较内容,还比较数据类型 null===undefined false