Javascript 该语句如何返回布尔值true或false
我很难理解上面的脚本。如何从compare()返回布尔值Javascript 该语句如何返回布尔值true或false,javascript,Javascript,我很难理解上面的脚本。如何从compare()返回布尔值true或false。布尔值是如何生成的true是如何形成的。请解释。返回语句有两种可能的方式返回值,它们都是布尔值: function compare(a, b) { return isNaN(a) || isNaN(b) ? a > b : +a > +b; } var c = compare(10,5); alert("C value ==?"+c); 无法返回此值(布尔值) 或者这个(也是一个布尔值-它是一
true
或false
。布尔值是如何生成的true
是如何形成的。请解释。返回语句有两种可能的方式返回值,它们都是布尔值:
function compare(a, b) {
return isNaN(a) || isNaN(b) ? a > b : +a > +b;
}
var c = compare(10,5);
alert("C value ==?"+c);
无法返回此值(布尔值)
或者这个(也是一个布尔值-它是一个比较运算符)
return语句有两种可能的方法返回值,它们都是布尔值:
function compare(a, b) {
return isNaN(a) || isNaN(b) ? a > b : +a > +b;
}
var c = compare(10,5);
alert("C value ==?"+c);
无法返回此值(布尔值)
或者这个(也是一个布尔值-它是一个比较运算符)
这是纯javascript(不是jQuery)代码
这可以改写为
+a > +b;
如果任何参数不是数字(If子句),则函数仍将尝试进行一些比较并返回结果。否则,它会将它们强制成数字,然后进行比较。也许应该更改参数的顺序…这是纯javascript(不是jQuery)代码
if (isNaN(a) || isNaN(b)) {
return a > b;
} else {
return +a > +b;
}
这可以改写为
+a > +b;
如果任何参数不是数字(If子句),则函数仍将尝试进行一些比较并返回结果。否则,它会将它们强制成数字,然后进行比较。也许参数的顺序应该改变
if (isNaN(a) || isNaN(b)) {
return a > b;
} else {
return +a > +b;
}
这将检查a
或b
是否不是数字(IsNan
)。如果任一测试为真,则返回a>b
的结果;如果两者都不是NAN,则返回+a>+b
的结果。阅读Javascript(条件)操作符的文档
为了确保清楚,测试是:
如果a不是数字或b不是a
数字,如果a大于,则返回true
而不是b,否则尝试转换a和
b同时返回数字和
a大于b
请注意,整个表达式没有任何意义,因为即使在尝试转换之后,它也希望为可能不是数字的内容返回相等测试
这将检查a
或b
是否不是数字(IsNan
)。如果任一测试为真,则返回a>b
的结果;如果两者都不是NAN,则返回+a>+b
的结果。阅读Javascript(条件)操作符的文档
为了确保清楚,测试是:
如果a不是数字或b不是a
数字,如果a大于,则返回true
而不是b,否则尝试转换a和
b同时返回数字和
a大于b
请注意,整个表达式没有任何意义,因为即使在尝试转换之后,它也希望为可能不是数字的内容返回相等测试 条件写得正确吗?它似乎在说,如果a或b不是数字,如果a大于b,则返回true,这似乎没有意义,或者我在这里遗漏了什么?条件写得正确吗?它似乎在说,如果a或b不是数字,如果a大于b,则返回true,这似乎没有意义,或者我在这里遗漏了什么?有没有提到jQuery?:)@亚历克斯:这个问题最初被标记为
jquery
和jqueryui
。有没有提到jquery呢?:)@亚历克斯:这个问题最初被标记为jquery
和jqueryui
。这不太正确。+
运算符重载,在OP的上下文中,它充当一元加号运算符(ECMA-262§11.4.6)。它将以下标识符转换为一个数字(如果可以的话),但不一定将其转换为正值。@RobG:谢谢您的更正。我会试着纠正我的答案以反映它。那不太正确。+
运算符重载,在OP的上下文中,它充当一元加号运算符(ECMA-262§11.4.6)。它将以下标识符转换为一个数字(如果可以的话),但不一定将其转换为正值。@RobG:谢谢您的更正。我将尝试更正我的答案以反映它。它不会返回isNan(a)
。对该表达式求值只是为了确定是返回a>b
还是+a>+b
的结果。它不会返回isNan(a)
。对该表达式求值只是为了确定是返回a>b
还是+a>+b
的结果。