Javascript'te parseInt() Kullanmak Problem Olabilir

Coderwall sitesinde programlama ile alakalı 'küçük ipuçları'nın (tips & trricks) bulunduğu bir bölüm var. Orada gördüğüm bir detayı paylaşacağım.

Javascript dili genel anlamda stabil olsa da bazen ilk bakışta anlam veremediğimiz noktalarla dolu olabiliyor. Bunlardan biri de parseInt() metodunun döndürdüğü değer.

parseInt('23');      // değer 23
parseInt('023');     // değer 19 (oktal - sekizlik tabandaki değeri)

Chrome, Firefox 21 ve Safari 6 ile bu iki değer de 23 çıkıyor fakat NodeJS shell'inde baktığımızda 23'ün sekizlik tabandaki değeri olan 19'u görüyoruz. Bu sorunla karşılaşmamak için parseInt() metoduna ikinci parametre olarak 10 veririz ve onluk sayı sistemindeki cevabı alırız.

parseInt('023',10);  // 23

Bunun yanında farklı yollar da var;

+'023';              // 23
~~'023';             // 23
Number('023');       // 23

Bununla ilgili bir de benchmark ve doğruluk değerlerini görmek isterseniz şuraya göz atmanızı tavsiye ederim: http://phrogz.net/JS/string_to_number.html
Sayfayı tekrar yüklediğinizde değerler farklı çıkabilir, bunu da gözden kaçırmayın. Bu sayfada yazana göre 'Hangisini kullanalım?' sorusunun cevabı neye ihtiyacınız olduğuna göre değişebilir. Fakat benim gördüğüm kadarıyla, ikinci tabloda yer alan değerlere de dikkatli inceleyerek şu sonucu çıkardım: elinizde düzgün bir str tipinde sayı olacağından eminseniz Number(str) genel olarak daha uygun görünüyor.

Kaynak: https://coderwall.com/p/4eaixa

Yorumlar

parseInt ve Number arasındaki kullanım farklılıklarını araştırdığım sırada bu yazına denk geldim ve gerekli tüm cevapları aldım. Yazın için teşekkürler.

Konuya göstermiş olduğunuz ilgiden ve yaptığınız yorumdan dolayı ben teşekkür ederim. Yardımcı olabildiysem ne mutlu.

Yeni yorum ekle

Filtered HTML

  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satırlar ve paragraflar otomatik olarak bölünür.

Plain text

  • Hiç bir HTML etiketine izin verilmez
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Satırlar ve paragraflar otomatik olarak bölünür.
Bu formu göndererek Mollom gizlilik şartlarını kabul etmiş oluyorsunuz.