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

javascript true和true在if语句中返回false?,javascript,Javascript,在普通javascript函数中。值min_chk和max_chk均为真,但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 ran

在普通javascript函数中。值min_chk和max_chk均为真,但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');
}

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

去掉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');
}

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

你应该把支票换成现金

if (min_chk && max_chk)

由于
min_chk
max_chk
已经是布尔值,您不需要直接将它们与
true

进行比较,甚至更好,完全去掉
==true
。没必要,这是真的。由于
CheckIt
的返回值已知,因此不需要进行严格的比较。