0

在普通的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');
}
4

3 回答 3

3

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

于 2013-01-15T22:50:43.247 回答
3

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

你应该改变你的支票只是

if (min_chk && max_chk)

由于min_chkmax_chk已经是布尔值,因此您无需将它们直接与true.

于 2013-01-15T22:52:01.970 回答
1

去掉 true 周围的 ''

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');
}
于 2013-01-15T22:50:58.913 回答