8

javascriptで009を解析する方法は、戻り値を9にする必要がありますが、0を返します。
しかし、001を解析すると、1を返します

var tenant_id_max = '3-009';
tenant_id_split = tenant_id_max.split("-");
var tenant_id_int = tenant_id_split[1];
var tenant_id_count = parseInt(tenant_id_int);
4

1 に答える 1

18

行う

var tenant_id_count = parseInt(tenant_id_int, 10);

これは、基数を指定しないと、「0」で始まる文字列が 8 進数として解析されるためです (「009」ではうまく機能しないため、0 が得られます)。

MDNから:

入力文字列が「0」で始まる場合、基数は 8 (8 進数) です。この機能は非標準であり、一部の実装では意図的にサポートされていません (基数 10 を使用する代わりに)。このため、parseInt を使用するときは常に基数を指定してください。

覚えておくべき最も重要なことは、常に基数を指定することです。

于 2012-10-05T16:43:49.577 に答える