首页 新闻 会员 周边

亲们这 js 的 if 判断咋回事啊,为false为啥也进来了

0
[已解决问题] 解决于 2021-08-05 14:57

咋回事啊,这咋整啊?

凑字凑字凑字凑字凑字凑字

你猜丶的主页 你猜丶 | 初学一级 | 园豆:183
提问于:2021-08-02 14:53
< >
分享
最佳答案
0

参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Boolean

其值不是undefined或null的任何对象(包括其值为false的布尔对象)在传递给条件语句时都将计算为true。 例如,以下if语句中的条件评估为true:

var x = new Boolean(false);
if (x) {
// 这里的代码会被执行
}

基于你的需求,可以这样写
if (!!obj['ProcessedStatus']){
//xxx
}

奖励园豆:5
写代码的小2B | 老鸟四级 |园豆:4371 | 2021-08-02 15:35

嗯?有问题吧?那是:Falsy的都是true。

顾晓北 | 园豆:10844 (专家六级) | 2021-08-02 16:31
其他回答(3)
0

你的status怎么来的?

顾晓北 | 园豆:10844 (专家六级) | 2021-08-02 15:10

var status = new Boolean(obj['ProcessedStatus']);

支持(0) 反对(0) 你猜丶 | 园豆:183 (初学一级) | 2021-08-02 15:14

@你猜丶: 不要这样,这样status应该是个对象,你这样 var status = !!obj['ProcessedStatus']);

支持(0) 反对(0) 顾晓北 | 园豆:10844 (专家六级) | 2021-08-02 16:27
0

new Boolean() 得到的是一个对象,对象是个真值,在 if 判断时为 true
转换为布尔值可以用两次取反 var status = !!obj['ProcessedStatus']

by.Genesis | 园豆:2719 (老鸟四级) | 2021-08-02 15:43
1


你可以这样看看你的传入值的判定

是卡门啊 | 园豆:210 (菜鸟二级) | 2021-08-02 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册