JS中的Null和Undefined

本文探讨JavaScript中Undefined和Null的特殊性。Undefined类型用于表示未赋值的变量,而Null类型则通常表示对象的空引用。在类型转换时,Undefined转为NaN,Null转为0;在字符串转换中,两者分别转为"undefined"和"null"。在布尔转换中,两者都被视为false。此外,尽管nullundefined在比较时返回true,但它们在赋值和typeof检查时并不相等。
摘要由CSDN通过智能技术生成

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.null
undefined --> 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);
结果为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值