JavaScript null、undefined与布尔值转换

本文详细介绍了JavaScript中null和undefined的相同点与区别,包括它们的数据类型、转换规则。同时,阐述了JavaScript中的布尔值转换,列出了哪些值会被转换为false。在编程过程中理解这些概念对于逻辑判断至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1 null与undefined
1.1.1 相同点

  nullundefined都可以表示“没有”,含义非常相似。将一个变量赋值为undefinednull,老实说,语法效果几乎没区别。在if语句中,它们都会被自动转为false,相等运算符(==)甚至直接报告两者相等。

//等同,下列式子返回true
null == undefined;
1.1.2 区别
1.类型不同

  null在js中定义的对象,表示空对象,但undefined代表未定义;

//null为空对象
typeof(null)  //  "object"

//未定义
typeof(undefined)  //"undefined"

2.转化不同

  当作数值类型进行转化时,null会被转为0,undefined会被转化为NaN

Number(null) // 0
5 + null // 5

Number(undefined) // NaN
5 + undefined // NaN
1.2 布尔值

布尔值代表“真”和“假”两个状态。“真”用关键字true表示,“假”用关键字false表示。布尔值只有这两个值。

下列运算符会返回布尔值:

  • 前置逻辑运算符: ! (Not)
  • 相等运算符:===!====!=
  • 比较运算符:>>=<<=

如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true

  • undefined
  • null
  • false
  • 0
  • NaN
  • ""''(空字符串)

注意事项:{}以及[]自动转化的时候为true

if({}){
 	console.log("{}---true")
} else {
    console.log("{}---false")
}
// 以上程序打印"{}---true"

if([]){
 	console.log("[]---true")
} else {
    console.log("[]---false")
}
// 以上程序打印"[]---true"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值