我正在尝试构建一个流程,通过CANBUS读取传感器数据和传输。有时,null
数据即将出现,我的意思是tempInt
或ldrInt
可能为空。
var msg2 = {
payload:
{
"$class": "org.acme.testnetwork.UpdateSensorData",
"sampDevice": "houseMehmet",
"newTempVal": tempInt,
"newLightVal": ldrInt,
"timeStamp": Date().toString()
}
};
虽然我可以访问msg.payload.newLightVal
并将其设置为任何值,但如果其值为null,则下面的控制语句将失败。
if(msg.payload.newLightVal===null){
msg.payload.newLightVal = -1 ;
}
答案 0 :(得分:2)
您确定tempInt
和ldrInt
是null
而不是undefined
。
我认为它们可能是undefined
,在这种情况下,在if语句中用===
替换==
,即
if(msg.payload.newLightVal==null)
编辑:由于msg.payload.newLightVal是NaN,这应该是if子句
if(msg.payload.newLightVal==null || isNaN(msg.payload.newLightVal))