为什么JavaScript将01002004显示为6295553?

时间:2012-01-02 07:51:12

标签: javascript alert

我有以下代码:

<script type="javascript">
   var item = 001002004;
   alert(item);
</script>

每当我在网络浏览器中的查看源中看到此页面时,我都会看到这些代码与此处完全相同。但是当alert()函数运行时,我看到一条未知消息。它超过'6295553'。我不知道这个未知价值来自哪里。我确信item没有发生任何事情,并且在alert之前没有发生任何变化。

你怎么看?有什么问题?

4 个答案:

答案 0 :(得分:5)

任何前缀为0的数字都将被视为八进制。和十六进制的0x

我猜你是把它作为一个像下面这样的数值,或者使用parseInt函数来解析字符串,当你提醒它时你会看到不同的值..

var item = 001002004;
alert(item);

或者你可能正在做类似下面的事情

var item = '001002004';
alert(parseInt(item));

查看parseInt @MDN

的详细信息

<强> DEMO HERE

答案 1 :(得分:1)

尝试将脚本类型更改为“text / javascript”<script type="text/javascript">,或者根本不使用type属性。见this jsfiddle

答案 2 :(得分:0)

http://jsfiddle.net/3jK2v/

请看看上面的小提琴。它没有提醒我任何异常。

答案 3 :(得分:0)

你确定你没有改变变量 - 可能带帽。例如

   var item = 'some value';
   alert(Item);