Node Red中JavaScript Else If语句故障排查求助
帮你排查JavaScript代码的问题
嘿,作为JS新手碰到这种语法坑太正常啦,我帮你拆解下代码里的几个关键问题,正是这些导致了第5行的异常:
1. 最致命的问题:条件判断后多余的分号
你看代码里的这些地方:
if (readlpr == dblpr); { // 还有 else if(readlpr !== null); { // 以及 if (!context.count); {
在JavaScript里,分号代表语句结束,你在if/else if的括号后加了分号,相当于告诉JS:这个条件判断的执行语句是空的!后面的大括号{}就变成了独立的代码块,和前面的条件完全没关系。这直接导致else if找不到对应的if,所以抛出异常——这就是你第5行报错的核心原因。
2. 注释写反的问题
你自己也发现了,第5行和第6行的注释搞反了:
- 第5行的
else if(readlpr !== null)对应的注释应该是// from here on, we are checking for a partial plate match - 第6行的
validdigits = 0对应的注释应该是// make sure we have data before continuing, as may be a rfid match
3. 多余的嵌套大括号
代码里validdigits = 0;后面多了一对无意义的{ },去掉它让代码更清晰。
修正后的代码
if (msg.payload.License_Plate !== null) { // This portion checks for a valid number plate if (readlpr == dblpr) { // we have a direct match, open the gate opengate = 1; // will send open signal to gpio } else if(readlpr !== null) { // from here on, we are checking for a partial plate match validdigits = 0; // make sure we have data before continuing, as may be a rfid match if (!context.count) { // check to see if counter already used, if not initialise it context.count = 0; } } }
你把这些修改后,代码的语法异常应该就消失啦,再测试下逻辑是否符合你的预期~
内容的提问来源于stack exchange,提问作者raj
相关产品推荐
相关产品推荐

