由于JavaScript中的这些条件,我即将生气。为什么这个不起作用?
if (isNaN(first) || isNaN(second) && (act !== '-' || act !== '+'))
首先检查是数字,第二个是数字,行为是减号还是加号。数字没问题,但不检查行为是否正确。怎么了?
E.g。第一个是1,行为是a,第二个是2.它不起作用。
P.S。
我对C ++和Java有一些了解。我从来没有遇到任何问题。但是自从我开始学习Javascript以来,我犯了这么多错误。
这种表达方式有不同的系统吗?
答案 0 :(得分:3)
首先检查是数字,第二个是数字,行为是减号还是加号。它没有数字,但它没有检查行为是否正确。
因此,对于上述要求,正确的陈述将是
if ( !isNaN(first) && !isNaN(second) && (act == '-' || act == '+'))
如果你想反转条件,那就是
if ( !(!isNaN(first) && !isNaN(second) && (act == '-' || act == '+')))
if ( isNaN(first) || isNaN(second) || (act != '-' && act != '+'))