Почему JavaScript отображает 01002004 как 6295553? - PullRequest
2 голосов
/ 02 января 2012

У меня есть коды ниже:

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

Всякий раз, когда я вижу эту страницу в Просмотр источника в моем веб-браузере, я вижу эти строки кода точно так же, как здесь.Но когда запускается функция alert(), я вижу неизвестное сообщение.Это уже «6295553».Я не знаю, откуда эта неизвестная ценность.Я уверен, что ничего не случилось с item, и это не изменилось до alert.

Что вы думаете?В чем проблема?

Ответы [ 4 ]

5 голосов
/ 02 января 2012

Любое число с префиксом 0 будет считаться восьмеричным.и 0x для шестнадцатеричного десятичного числа

Я предполагаю, что вы используете его как числовое значение, как показано ниже, или используете функцию parseInt для анализа строки, и когда вы ее предупреждаете, вы видите другое значение ..

var item = 001002004;
alert(item);

Или, возможно, вы делаете что-то вроде ниже

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

Подробнее о parseInt @ MDN

ДЕМО ЗДЕСЬ

1 голос
/ 02 января 2012

Попробуйте изменить тип сценария на «text / javascript» <script type="text/javascript"> или вообще не используйте атрибут type. Смотрите это jsfiddle

0 голосов
/ 02 января 2012

Вы уверены, что не меняете переменную - возможно, с заглавной буквы. например,

   var item = 'some value';
   alert(Item);
0 голосов
/ 02 января 2012

http://jsfiddle.net/3jK2v/

Пожалуйста, посмотрите на скрипку выше. Ничего аномального для меня не предупреждает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...