5

Javascript は、先行ゼロを持つ値で異なる動作をします。alert(b) - 異なる値を出力します。

var a = 67116;
var b = 00015;
alert(a);
alert(b);

alert(b) 内の javascript によってここで適用される変換は何ですか? (二重引用符で囲んだ場合、問題なく動作します。)

4

3 に答える 3

3
var b = 00015

は8進数です

解決策については、この質問を参照してください

于 2013-06-14T17:44:18.217 に答える
2

他の回答が言ったように、先行ゼロは数値を8進数リテラルにします。8 進数の "15" の 10 進数表現は "13" です。

数値リテラルを 8 進数として解釈したい場合を除き、数値リテラルの先頭にゼロを使用する理由はないことに注意してください。つまり、使用しないでくださいvar b = 00015。ユーザー入力からその値を取得している場合、それは文字列 (つまり"00015") になり、次のように 10 進数に変換できますparseInt

var b = "00015"; // or var b = document.getElementById('some_input').value
var numB = parseInt(b, 10); // 15
于 2013-06-14T17:49:54.290 に答える