JS中的Null和Undefined

it2023-03-06  78

Undefined和Null作为JS中唯二的两种只有一个值的类型,在js的许多转换机制及逻辑判断上有异于其他类型之处 一.Undefined类型 对于一个定义了,但未赋值的变量,系统默认其为Undefined类型,且值为undefined 但若一个变量连定义都没有,会出现很神奇的一幕,即使用typeof操作符可检测出其类型为undefined,但输出该变量值时会报错,例如: 1 var x; 2 console.log(x); 结果为: 1 console.log(y); 结果为: 1 var x; 2 console.log(typeof(x)); 3 console.log(typeof(y)); 结果为: 二.Null类型 一般未指定指向对象的指针会被默认为Null类型,因为一个值为Null的变量其实际类型为object,因为系统会将其视为一个保存对象的变量,只不过还未初始化。 例如: 1 var x=null; 2 console.log(x); 3 console.log(typeof x); 结果为: 三.Undefined和Null在类型转换中的特殊之处 1数值转换 Number 函数 Undefined–>NaN Null–>0 parseInt函数 Undefined–>NaN Null–>NaN 2字符串转换 二者都不含toString方法,需使用String函数,且转换后的值为 Undefined–>“undefined” Null–>“null”

3Boolean函数 将二者全部视为false

四.操作符 1.nullundefined --> true 由于js认为undefined派生于null,所以执行操作符时结果为true 但若执行=,则二者不等 分别对二者使用typeof,其结果也不等(这是显然的,前面已提到undefined类型为Undefined,但null会被视为object)

2.在==中,null和undefined不转化为任何数值,所以虽然null转化为数值时为0,但是null==0结果为false

例如: 1 console.log(nullundefined); 2 console.log(null=undefined); 3 console.log(typeof null==typeof undefined); 结果为:

最新回复(0)