SORU
14 HAZİRAN 2013, Cuma


kullanmaya ne zaman parseınt vs tekli artı -

bu hat arasındaki farklar nelerdir:

var a = parseInt("1", 10); // a === 1

ve bu hat

var a =  "1"; // a === 1

jsperf test Bu tekli operatör güncel chrome sürümü çok daha hızlı, node.js için mi? öyle olduğunu varsayarak olduğunu gösterir

eğer olmayan dizeleri dönüştürmek için çalışırsanız numaraları NaN geri iki:

var b = parseInt("test" 10); // b === NaN
var b =  "test"; // b === NaN

ne zaman tekli üzerinde parseınt artı (node.js özellikle kullanmayı tercih etmeliyim???

edit: çift tilde operatörü ~ ~ ve ne fark eder?

CEVAP
14 HAZİRAN 2013, Cuma


Daha fazla olayı tam bir set için this answer bakın lütfen




Burada bildiğim bazı farklılıklar vardır:

  • Boş bir dize "" parseInt değerlendirir 0, NaN olarak değerlendirir. IMO, boş bir dize NaN olmalıdır.

     '' === 0;              //true
    isNaN(parseInt('',10)); //true
    
  • Birli ayrıca ondalık sayı kabul ettiğinden bu yana parseFloat daha fazla gibi davranıyor.

    Diğer yandan parseInt non-nümerik bir karakter gördüğünde ayrıştırma, ondalık noktası . düşünüldüğünü dönemi gibi durur.

     '2.3' === 2.3;           //true
    parseInt('2.3',10) === 2; //true
    
  • parseInt parseFloat ve dize ayrıştırır oluşturursoldan sağa. Eğer geçersiz bir karakter görürlerse, ayrıştırılmış (varsa) sayı olarak ne verir, ve eğer hiç bir numarası olarak ayrıştırılır NaN.

    Öte yandan birli eğer tüm dizeyi bir sayıya olmayan Cabrio ise NaN dönecektir.

    parseInt('2a',10) === 2; //true
    parseFloat('2a') === 2;  //true
    isNan( '2a');            //true
    
  • @Alex K., parseInt parseFloat yorum görülen karakter tarafından yorumlanabilir. Bu onaltılık ve üstel gösterimler x beri başarısız olur ve e non-sayısal bileşenler (en az base10) olarak kabul edilir anlamına gelir.

    Birli bunları düzgün olsa dönüştürür.

    parseInt('2e3',10) === 2;  //true. This is supposed to be 2000
     '2e3' === 2000;           //true. This one's correct.
    
    parseInt("0xf", 10) === 0; //true. This is supposed to be 15
     '0xf' === 15;             //true. This one's correct.
    

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BaaaStuds's channel

    BaaaStuds's

    10 Mart 2009
  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005