我希望我的逻辑没有缺陷,但我正在阅读JavaScript的权威指南,我不明白这个自定义abs函数是如何工作的......
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
我使用三元运算符重新起草它以试图理解它......
var res = (x >= 0) ? x : -x;
return res;
......但我仍然不知道它是如何运作的。
假设我使用-10作为x,它如何返回+10?标志如何反转?
答案 0 :(得分:5)
function abs(x) {
if (x >= 0) {
//If the number passed is greater than or equal to zero (positive)
//return it back as is
return x;
} else {
//If less than zero (negative)
//return the negative of it (which makes it positive)
// -(-10) === 10
return -x;
}
}
答案 1 :(得分:3)
负10不大于或等于0,因此返回其相反值。
在变量前放置一个负号与将其乘以负数1相同。
答案 2 :(得分:2)
看起来像
var res = (x >= 0) ? 1 * x : -1 * x;
答案 3 :(得分:2)
假设我使用-10作为x,它如何返回+10?标志如何反转?
这是因为这个检查:
x >= 0
如果数字为0或更大,则返回else
返回否定版本,由于前面有-
符号而变为正数。