3

私は関数をテストして、その関数がパラメーターであるときに何が起こるかを確認していましたnullが、else ステートメントを使用することにしました。驚いたことに、渡したパラメーターをログに記録せず、まったく別のものをログに記録しています。誰かがこれに光を当てることができるかもしれません。コードは次のとおりです。

function testing(o) {
    if (!o) {
        return "Sorry, looks like you need to pass an argument.."
    } else {
        return o;
    }
}

console.log(testing(02034));
//logs 1052

何が起きてる?

4

3 に答える 3

8

Javascript では、他の言語と同様に、0 で始まる数値は基数 8 (8 進数) であることを示します。

したがって、02034基数 8 = 基数 10 の 1052 (10 進数)。

于 2012-06-21T00:48:56.040 に答える
3

先頭の「0」により、JavaScriptは値を8進数として読み取ります。コンソールに印刷すると、10進表現に変換されます。

于 2012-06-21T00:53:03.833 に答える
2

その表記は8進整数リテラルと呼ばれます

于 2012-06-21T00:51:36.893 に答える