Javascript返回奇怪的价值

时间:2012-06-21 00:47:30

标签: javascript

我正在测试一个函数,看看当它的参数是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

这里发生了什么?

3 个答案:

答案 0 :(得分:8)

在Javascript中,与其他语言一样,以0开头的数字表示它的基数为8(八进制)。

因此,基数8中的02034 = 10(十进制)中的1052。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

该表示法称为octal integer literal