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(八进制)。

因此,02034以 8 为底 = 以 10 为底的 1052(十进制)。

于 2012-06-21T00:48:56.040 回答
3

前导“0”导致 JavaScript 将该值读取为八进制数。当您将它打印到控制台时,它会被转换回它的十进制表示。

于 2012-06-21T00:53:03.833 回答
2

该符号称为八进制整数文字

于 2012-06-21T00:51:36.893 回答