js中数字0和“”的问题以及js ==和===的区别

今天做状态切换的时候,获取商品列表,后端那边说如果选择全部,status这个字段就不传,然后如果选择待付款的话,状态就传0,我给做的是如果用户点击全部会给status传个“”空字符串,判断status如果等于空字符串就不传这个字段。

let params
 
if(status == ''){
    params = {
        page: 1,
        size: 4
    }    
}else{
    params = {
        page: 1,
        size: 4,
        status: status
    }
}

 当我点击待付款的时候status等于0,结果发现返回的还是全部的数据,我当时就纳闷了,status的值没传错啊传的是0,怎么获取的数据还是全部呢,0怎么会和“”空字符串相等呢?然后网上查了一波发现

==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换
===:用来检测两个操作数是否严格相等

然后我又在谷歌控制台测试了一下


所以说以后我们写代码最好还是使用严格模式来写,避免很多弯路。

猜你喜欢

转载自www.cnblogs.com/ch9546/p/12552524.html