忽略JavaScript if-else语句
我有一个简单的if声明如下:忽略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); }
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变量是在网页中设置的,所以我只是个笨蛋。谢谢哈哈