【发布时间】:2012-05-11 06:37:25
【问题描述】:
我希望我的逻辑没有缺陷,但我正在阅读 JavaScript 权威指南,但我不明白这个自定义 abs 函数是如何工作的......
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
我使用三元运算符重新制作它以试图理解它......
var res = (x >= 0) ? x : -x;
return res;
...但我仍然不明白它是如何工作的。
假设我使用 -10 作为 x,它如何返回 +10?符号如何反转?
【问题讨论】:
-
虽然我发现在大多数情况下编码所需的数学知识程度远低于预期,但您确实需要了解一些基础知识——比如运算符优先级的原则,或者,在这种情况下,管理正数和负数相互作用的规则。
-
我真希望我对数学有更强的把握。我正在积极寻求提高这项技能并将其应用于编程。我知道 P.E.M.D.A.S 和管理这些数字的规则,但我不明白 return -x 是如何工作的。用 -10 替换 x,我认为它也替换了负数......但深入思考它,它只是用 (-10) 替换 x 并将 - 符号留在 (-10) 前面,其值为 10。
标签: javascript math ternary-operator