数组长度为0的时候判断为false

length = 0时,布尔值为false
比如在if判断时

	const arr = []
	if(arr.length){
		console.log(1)
	}
	if(!arr.length){
		console.log(2)
	}

最后输出2
在这里插入图片描述

        arr1 = []
        console.log(arr1.length);
        console.log(arr1.length === false);
        console.log(arr1.length == false);
        console.log(0 == false);
        console.log(1 == true);
        console.log(2 == true);
        if(!arr1.length) console.log('!');

在这里插入图片描述
可见,0判断为false,1为true,但是===就不行了,
但是length为2的时候输出false,但是在if判断中却可以通过,如下

    const arr = [1,2]
        if (arr.length) {
            console.log(1)
            console.log('length',arr.length);
            console.log(arr.length == true);
            console.log(arr.length == false);
        }
        console.log('---------------');
        if (!arr.length) {
            console.log(2)
            console.log('length',arr.length);
            console.log(arr.length == true);
        }

在这里插入图片描述

可见进入了第一个if中,说明arr.length为2时能进入if判断,但是2 确实 不 == true

        const arr = [1,2]
        if (arr.length) {
            console.log(1)
            console.log('length',arr.length);
            console.log(arr.length == true);
        }
        console.log('---------------');
        if (!arr.length) {
            console.log(2)
            console.log('length',arr.length);
            console.log(arr.length == true);
        }
        console.log('---------------');
        if(0){
            console.log('0');
        }
        if(!0){
            console.log('!0');
        }
        if(1){
            console.log(111);
        }
        if(2){
            console.log(222);
        }
        if(null){
            console.log('null');
        }
        if(!null){
            console.log('!null');
        }
        if(undefined){
            console.log('undefined');
        }
        if(!undefined){
            console.log('!undefined');
        }
        if(NaN){
            console.log('NaN');
        }
        if(!NaN){
            console.log('!NaN');
        }
        if(!false){
            console.log('!false');
        }

在这里插入图片描述

在这里插入图片描述

所以当判断语句是 null undefined NaN 0 或者直接是false的时候,就不能进入if或者while判断;
但是2、3、4等数字就不是1,不能==true,也可以进入判断

        console.log( 1 == true);
        console.log( 1 === true);
        console.log( '1' == true);
        console.log( '1' === true);
        console.log('-----');
        console.log(0 == false);
        console.log(0 === false);
        console.log( '0' == false);
        console.log( '0' === false);
        console.log('-----');
        console.log( 2 == true);
        console.log( '2' == true);

在这里插入图片描述

所以只有 0 和 1 的时候可以用true和false来(仅限于==),其他数值不行

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值