2020-12-12

js中布尔值为false的六种情况
一、js中布尔值为false的六种情况
下面6种值转化为布尔值时为false,其他转化都为true

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN===“number”)

6、""(双引号)或’’(单引号) (空字符串,中间有空格时也是true)

注意空数组空对象,负值转的布尔值时都为true

不同数据类型转化为布尔值的结果
数据类型 转为true的值 转为false的值
Boolean true false
String 任何非空字符串 ‘’(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a undefined

对于0, ‘’, null, undefined, NaN,{}, [], Infinity求布尔值,分别是false false false false false true true true.

因此我们知道的一点是:对象的布尔值是true,即使是对象{}。

"!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。

例如 array=[1,2,3] array.num=undefind !array.num=true !!array.num=false

二、出现undefind的中情况
1、未初始化的变量

变量未定义 或 变量定义了没有赋值 或者 函数形参未赋值

2、不返回任何结果的函数的调用结果

函数return没有值

function show(){
return;
};
console.log(show()); // undefined
函数没有return

function show(){

};
console.log(show()); // undefined
3. 不存在的对象属性或方法

let favoriteMovie = {
title: ‘Blade Runner’
};
favoriteMovie.actors; // => undefined
4.越界索引数组元素

const colors = [‘blue’, ‘white’, ‘red’];
colors[5]; // => undefined
colors[-1]; // => undefined

三、出现null的几种情况
1.在JS的DOM元素获取中,如果没有获取到指定的元素对象,结果一般是null。

2.Object.prototype._proto_的值也是null。

3.在正则捕获的时候,如果没有捕获到结果,默认也是null。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值