-2

私のロジックに欠陥がないことを願っていますが、JavaScriptの決定的なガイドを読んでいて、このカスタムabs関数がどのように機能するのか理解していません...

function abs(x) {
  if (x >= 0) {
    return x;
  } else {
    return -x;
  }
}

私はそれを理解するために三項演算子を使用してそれを作り直しました...

var res = (x >= 0) ? x : -x;
return res;

...しかし、私はまだそれがどのように機能するのかわかりません。

xとして-10を使用するとしますが、どのように+10を返しますか?符号はどのように反転しますか?

4

4 に答える 4

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;

    }
}
于 2012-05-11T06:39:53.180 に答える
3

負の 10 は 0 以上ではないため、その反対が返されます。

変数の前にマイナス記号を付けることは、マイナス 1 を掛けることと同じです。

于 2012-05-11T06:40:34.447 に答える
2

それは次のように見えます

var res = (x >= 0) ? 1 * x : -1 * x;
于 2012-05-11T06:40:14.460 に答える
2

x として -10 を使用すると、どのように +10 が返されるのでしょうか? 符号はどのように反転しますか?

これは、次のチェックによるものです。

x >= 0

数値が 0 以上の場合は、その前の符号elseのために正になる負のバージョンを返します。-

于 2012-05-11T06:40:36.200 に答える