Javascript IF语句可以处理两个以上条件吗?

时间:2019-12-03 19:19:33

标签: javascript conditional-statements

我有一个带有2个条件的javascript语句,现在想添加第三个条件。似乎我有一些语法错误,但是如果所有3个条件都为true,则要执行If条件。 IF语句中可以有两个以上吗?

原始(效果很好)

if (
    typeof(engravingSamples) != "undefined" 
    && $("form[name='prdform'] input[name='format']").val() == "true"
) 

新功能(不执行)

if (
    typeof(engravingSamples) != "undefined" 
    && $("form[name='prdform'] input[name='format']").val() == "true") 
    && $("form[name='prdform'] input[name='lines']").val() > "6"
) 

2 个答案:

答案 0 :(得分:2)

您的陈述式中括号过多,在== "true"之后关闭,在> "6"之后再次关闭。这就是为什么您有一个错误。我可以给您的一个专业提示是在您的情况之间添加换行符,使它们更易于阅读。

if (typeof(engravingSamples) != "undefined" 
    && $("form[name='prdform'] input[name='format']").val() == "true"
//------------------------------------------------------------------^^^
    && $("form[name='prdform'] input[name='lines']").val() > "6") 

此外,> "6"听起来不正确。您是否正在检查某个东西是否大于字符串? Javascript也许可以转换它,但是将整数与整数进行比较将是一种更好的做法。

答案 1 :(得分:0)

正如@ j08691所指出的,您将给自己另一个带有'>“ 6”'条件的错误。如果要检查字符串比较,则将执行字符串比较。

字符串比较意味着将55视为小于“ 6”,因为在JavaScript逻辑中“ 6”大于“ 5”。除非您有意执行字符串操作,否则您很可能希望摆脱那些引号,并使用6的整数版本。

如果要将用户的输入转换为整数,可以使用

parseInt($("form[name='prdform'] input[name='lines']").val()) > 6