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_chkとはすでにブール値であるためmax_chk、それらを直接と比較する必要はありませんtrue

于 2013-01-15T22:52:01.970 に答える
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');
}
于 2013-01-15T22:50:58.913 に答える