SORU
11 Mayıs 2009, PAZARTESİ


Nasıl JavaScript'parseınt sekizli davranış lar çalışıyorum?

JavaScript: aşağıdaki çalıştırmadan deneyin

parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!

Ben sadece JavaScript önde gelen sıfır octal integer, gösterir ve "" veya "9" base-8, sıfır döndürür işlevi. 8 hiç olmadığı düşünüyor bunu zor yoldan öğrendim Öyle ya, this is by design.

Geçici çözümler nelerdir?

Not: bütünlüğü uğruna, bir çözüm sonrası üzereyim, ama nefret ediyorum Bu bir çözüm değil, bu yüzden diğer/daha iyi cevaplar gönderin.


Güncelleme: JavaScript standart (ECMA-262) 5. baskısı bu davranışı ortadan kaldıran bir son dakika değişikliği duyurdu. Mozilla write-up bir iyi vardır.

CEVAP
11 Mayıs 2009, PAZARTESİ


Bu basit bir çözüm ile ortak bir Javascript yakaladım

Sadece specify the base, ya da 'taban', demek gibi:

parseInt('08',10); // 8

Ayrıca Number: kullanabilirsiniz

Number('08'); // 8

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010
  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009