javascript中的if语句中的两个条件似乎无法正常工作

时间:2019-09-02 15:58:58

标签: javascript

我无法获得多个if语句才能正常工作。

这是TileBoard中HomeAssistant的代码摘录。

这就是我所拥有的:

   title: function (item, entity) {
       var start = entity.attributes.next_activity_start;
       var hold_state = entity.attributes.hold_state;
       var hold_until = entity.attributes.hold_until;
       if ( hold_state == "on" && hold_until == "null" ); { return 'N/A - Hold'; } return timeAgo(start);
   }, 

hold_state填充为“ on”,hold_until填充为“ null”,这正是我在此代码中期望的。但是,那么if子句似乎只能通过查看第一个条件才能真正正常工作,而不能正确考虑第二个条件(hold_until ==“ null”)。我在此if语句中使用的语法不正确吗?如果希望hold_state处于打开状态且hold_until为null,我希望它返回“ N / A-Hold”。

2 个答案:

答案 0 :(得分:3)

 if ( hold_state == "on" && hold_until == "null" ); //this semicolon should be removed
 { 
    return 'N/A - Hold'; 
 } 

 return timeAgo(start)

还要看你的状况。我假设您要检查变量是否为 null:

if (hold_until != null && hold_state == "on")

答案 1 :(得分:3)

我认为是因为,您期望使用string null。输入不带字符串类型的期望为null的类型,如果出现大小写,则还删除;

if ( hold_state == "on" && hold_until == null ) { return 'N/A - Hold'; } return timeAgo(start);