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

  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • hoorahjencar

    hoorahjencar

    6 HAZİRAN 2007
  • snookie77

    snookie77

    2 Mart 2006