javascript true和true在if语句中返回false?

时间:2013-01-15 22:47:37

标签: javascript

在普通的javascript函数中。值min_chk和max_chk均为true,但if函数仍显示警报。不知道为什么?

function Checkit(m,n){
return m>n;
}

var min_chk = Checkit(a,X);
var max_chk = Checkit(b,Y);
if ((min_chk === 'true') && (max_chk === 'true')){
...
    } else {
    alert('invalid range');
}

3 个答案:

答案 0 :(得分:3)

布尔值true与字符串'true'不同。删除引号。

答案 1 :(得分:3)

如果两侧的操作数具有不同的类型,则===运算符返回false。布尔值true和字符串"true"具有不同的类型。

您应该将支票更改为

if (min_chk && max_chk)

由于min_chkmax_chk已经是布尔值,因此您无需直接将其与true进行比较。

答案 2 :(得分:1)

摆脱''围绕真实

function Checkit(m, n) {
    return m > n;
}

var min_chk = Checkit(a, X);
var max_chk = Checkit(b, Y);
if ((min_chk === true) && (max_chk === true)) {...
} else {
    alert('invalid range');
}