为什么我的错误论点不算虚假?

时间:2018-05-03 13:50:27

标签: node.js

我的请求中的参数是false,但它没有被检测为false ...我的代码如下所示:

router.post('/leave', (req, res) => {
    const myBooleanValue = req.body.myBooleanValue
    console.log(myBooleanValue) // This prints out 0
    if (!myBooleanValue) {
        // This bit never gets called
    }
})

如您所见,myBooleanValue0,表示错误。但是,if子句的内部代码永远不会被调用,因为它没有将其检测为false。我还尝试了if (myBooleanValue === 0) {}if (myBooleanValue === false) {}。但这并不奏效。请帮忙吗?

2 个答案:

答案 0 :(得分:3)

我猜测myBooleanValue的类型是字符串,而不是数字。 !"0" === false。你可以输入强制if (!(+myBooleanValue))

答案 1 :(得分:0)

首先确保它不会以文字//noinspection GradleCompatible的形式返回。如果它以文字形式返回而不是通过

将其强制转换为int
'0'