忽略JavaScript if-else语句

忽略JavaScript if-else语句,javascript,if-statement,boolean-operations,Javascript,If Statement,Boolean Operations,我有一个简单的if声明如下: function calculateTotal() { if (tanksize != 1 || tanksize != 2) { var setupPrice = basicPrice + StatPrice() + DigiStatPrice() + IRPrice() + UVPrice() + cagePrice(); var setupPrice2 = toFixed(setupPrice, 2); }

我有一个简单的if声明如下:

function calculateTotal() {

    if (tanksize != 1 || tanksize != 2) {
        var setupPrice = basicPrice + StatPrice() + DigiStatPrice() + IRPrice() + UVPrice() + cagePrice();
        var setupPrice2 = toFixed(setupPrice, 2);

    } else {
        var setupPrice = basicPrice;
        var setupPrice2 = toFixed(setupPrice, 2);
    }


    //display the result at the top of page
    var divobj = document.getElementById('totalPrice');
    divobj.innerHTML = "£" + setupPrice2;

    //display the result at the bottom of page
    var divobj = document.getElementById('totalPrice2');
    divobj.innerHTML = "£" + setupPrice2;
}
但是当
tanksize
变量设置为
1
2
时,
setupPrice
变量仍然通过添加
basicPrice+StatPrice…
等来计算。

您需要使用:

if (tanksize !== 1 && tanksize !== 2) {
使用
&&
运算符,或

if (!(tanksize ===1 || tanksize === 2)) {
在代码中,当值不是1或不是2时,第一个块就会执行,这等于它总是执行

如果值为
1
,则
tanksize!=2
真的
所以
tanksize=1 | |油罐尺寸=2

如果值为
2
,则
tanksize!=1
真的
所以
tanksize=1 | |油罐尺寸=2


换句话说,
tanksize=1 | |油罐尺寸=2
始终为
,无论
tanksize
的值是什么。

尝试
如果(tanksize!=1&&tanksize!=2){
而不是
如果(tanksize!=1 | tanksize!=2){
此语句始终为真:

if(tanksize!=1 || tanksize!=2){
因为,当tanksize=1时,tanksize与2不同

当tanksize=2时,tanksize与1不同

这不是一个javascript错误,您只需要更改您的逻辑,以便在
中进行正确的测试,如果

您的逻辑是错误的。。 事实上,两个NOT EQUALS的OR运算符始终为TRUE(请检查布尔表),条件语句“if”检查TRUE或FALSE,因此代码将始终返回TRUE

使用类似

if(tanksize!=1 && tanksize!=2){

  # Your code
}

(tanksize!=1 | | tanksize!=2)通过此语句始终为真。将运算符| |更改为&

您的第一个条件始终为
true
,因为例如,如果某些
x=1
,则与2不同,反之亦然。
所以这个条件等于

if(true) {
  // ...
}

尝试使用if(tanksize>2)在何处分配
tanksize
?这是一个全局变量,因为您没有将其作为argument@PamioSolankytanksize变量是在网页中设置的,所以我只是个笨蛋。谢谢哈哈