Javascript 如何检查JavaScipt中的嵌套If语句

Javascript 如何检查JavaScipt中的嵌套If语句,javascript,Javascript,我是JavaScript新手,所以我目前正在编写一个脚本,该脚本应该更新一个名为Wasl\u Status的字符串。以下是我试图检查的条件: 以下是我目前的代码: if (analog2 == 0) { return "Tamper Weight"; } if ((analog1 == 0) && (speed == 0)) { return "Parked Device Disconnected"; } if ((analog1

我是JavaScript新手,所以我目前正在编写一个脚本,该脚本应该更新一个名为
Wasl\u Status
的字符串。以下是我试图检查的条件:

以下是我目前的代码:

if (analog2 == 0) {
  return "Tamper Weight";
}
if ((analog1 == 0) && (speed == 0)) {
  return "Parked Device Disconnected";
}
if ((analog1 == 0) && (speed > 0)) {
  return "Moving Device Disconnected";
if ((ignition == true) && (speed == 0))
    return 'Parked Engine On';
if ((ignition == false) && (speed == 0))
    return 'Parked Engine Off';
if (speed > 0)
    return "Moving";
}

当我测试它时,Wasl_状态只输出前三个条件,而忽略最后三个条件。如何检查每个条件并返回所有6个值?到目前为止,我读到的是创建一个数组,但当前的指令说我必须执行嵌套的if语句。我希望我的问题是清楚的。谢谢。

虽然这是正确的,但我认为如果您在大多数情况下尝试
返回函数末尾的值,阅读和遵循代码会更容易:

var message = 'no statements fit';

if      (analog2 == 0)                      { message = "Tamper Weight"; }
else if (analog1 == 0        && speed == 0) { message = "Parked Device Disconnected"; }
else if (analog1 == 0        && speed > 0)  {
  message = "Moving Device Disconnected";
   
  if      (ignition == true  && speed == 0) { message = 'Parked Engine On'; }
  else if (ignition == false && speed == 0) { message = 'Parked Engine Off'; }
  else if (speed > 0)                       { message = "Moving"; }
}

return message;
然后,您将以更简单的方式看到返回的内容以及返回的时间:

if ((analog1 == 0) && (speed > 0)) {
  return "Moving Device Disconnected";
  // ... everything after this code will never be executed because the function "stops" executing after a return.

虽然您所做的是正确的,但我认为如果您在大多数情况下尝试
返回函数末尾的值,阅读和遵循代码会更容易:

var message = 'no statements fit';

if      (analog2 == 0)                      { message = "Tamper Weight"; }
else if (analog1 == 0        && speed == 0) { message = "Parked Device Disconnected"; }
else if (analog1 == 0        && speed > 0)  {
  message = "Moving Device Disconnected";
   
  if      (ignition == true  && speed == 0) { message = 'Parked Engine On'; }
  else if (ignition == false && speed == 0) { message = 'Parked Engine Off'; }
  else if (speed > 0)                       { message = "Moving"; }
}

return message;
然后,您将以更简单的方式看到返回的内容以及返回的时间:

if ((analog1 == 0) && (speed > 0)) {
  return "Moving Device Disconnected";
  // ... everything after this code will never be executed because the function "stops" executing after a return.

你不应该这样做。如果
analog2==0
,你想让else中的代码出现吗?你的
else
if((analog1==0)和&(speed>0)){return“Moving Device Disconnected”}
,你知道吗?这个代码:
if((analog1==0)&&&(speed==0){return“停止的设备已断开”}如果((analog1==0)&&&(speed>0){return“移动的设备已断开”}
永远不会发生,因为您已经返回了一些内容编辑:Else现在被删除。否则,您不应该这样做。如果
analog2==0
,你想让else中的代码出现吗?你的
else
if((analog1==0)和&(speed>0)){return“Moving Device Disconnected”}
,你知道吗?这个代码:
if((analog1==0)&&&(速度==0){return“停止的设备已断开”}如果((analog1==0)&&&(速度>0)){return“移动的设备已断开”}
永远不会发生,因为您已经返回了一些内容编辑:Else现在被删除。