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

  • EvilControllers

    EvilControll

    20 Ocak 2008
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010