基于javascript中的条件赋值
我正在调用两个函数并检查给定输入是否有基于javascript中的条件赋值,javascript,node.js,Javascript,Node.js,我正在调用两个函数并检查给定输入是否有条形码和二维码 var decode = jsQR.decodeQRFromImage(rawImageData.data, rawImageData.width, rawImageData.height); checkBarCode(function(err, result) { if (result) { Result.pages.push({ ValidTicket: decode ? true : fa
条形码
和二维码
var decode = jsQR.decodeQRFromImage(rawImageData.data, rawImageData.width, rawImageData.height);
checkBarCode(function(err, result) {
if (result) {
Result.pages.push({
ValidTicket: decode ? true : false //here i want to assign true or false if barcode or qr code is present.
});
}
});
这是正确的吗
ValidTicket: decode || result ? true : false
是的,没错。如果解码
或结果为truthy*,则将赋值为true
;如果两者都是falsy*,则将分配false
你可能会有人告诉你这样做:
ValidTicket: decode || result
…但这不一定会指定true
或false
,因为JavaScript(这是我贫血的小博客上的一篇文章);相反,如果是真的,它将分配decode
的值,如果不是,则分配result
的值。因此,如果您确实需要true
或false
,那么您需要像以前一样使用条件
*关于“truthy”和“falsy”:
“truthy”-当用作布尔值时强制为true
“falsy”-当用作布尔值时强制为false
falsy值是0
,“
,NaN
,null
,未定义
,当然还有false
。所有其他值都是真实的。是的,这是正确的。如果解码或结果为truthy*,则将赋值为true
;如果两者都是falsy*,则将分配false
你可能会有人告诉你这样做:
ValidTicket: decode || result
…但这不一定会指定true
或false
,因为JavaScript(这是我贫血的小博客上的一篇文章);相反,如果是真的,它将分配decode
的值,如果不是,则分配result
的值。因此,如果您确实需要true
或false
,那么您需要像以前一样使用条件
*关于“truthy”和“falsy”:
“truthy”-当用作布尔值时强制为true
“falsy”-当用作布尔值时强制为false
falsy值是0
,“
,NaN
,null
,未定义
,当然还有false
。所有其他值都是真实的。您的赋值确实正确,但我建议使用两个布尔NOT运算符,这稍微简洁一些:
var decode = jsQR.decodeQRFromImage(
rawImageData.data,
rawImageData.width,
rawImageData.height
);
checkBarCode(function(err, result) {
if (result) {
Result.pages.push({
ValidTicket: !!(decode || result)
});
}
});
您的赋值确实正确,但我建议改为使用两个布尔NOT运算符,这稍微简洁一些:
var decode = jsQR.decodeQRFromImage(
rawImageData.data,
rawImageData.width,
rawImageData.height
);
checkBarCode(function(err, result) {
if (result) {
Result.pages.push({
ValidTicket: !!(decode || result)
});
}
});
对我来说似乎是对的