Sobes.tech
Junior

JavaScript'te bir dizge nasıl sayıya dönüştürülür?

sobes.tech yapay zeka

AI'dan gelen yanıt

JavaScript'te, dizgeleri sayılara dönüştürmenin birkaç yolu vardır:

  • İçsel tip dönüşümleri:

    • Matematiksel operatörler: örneğin, tekli artı + veya çıkarma -.
    // Tekli artı ile içsel dönüşüm
    let str = "123";
    let num = +str; // num = 123 (sayı)
    
    • Aritmetik işlemler: Aritmetik operatörler kullanıldığında, JavaScript operandları sayıya çevirmeye çalışır.
    // Çıkarma ile içsel dönüşüm
    let str1 = "10";
    let str2 = "5";
    let result = str1 - str2; // result = 5 (sayı)
    
  • Açık tip dönüşümleri:

    • parseInt(string, radix): Bir dizgiyi tam sayıya dönüştürür. İkinci argüman radix (sayısal sistemin tabanı) belirtilmesi önerilir, böylece beklenmedik davranışlar önlenir.
    // parseInt ile açık dönüşüm
    let strInt = "42px";
    let numInt = parseInt(strInt, 10); // numInt = 42 (tam sayı)
    
    let strBinary = "101";
    let numBinary = parseInt(strBinary, 2); // numBinary = 5 (tam sayı)
    
    • parseFloat(string): Bir dizgiyi kayan nokta sayısına dönüştürür. Dizgi, ilk sayı olmayan karakter veya noktaya kadar analiz edilir.
    // parseFloat ile açık dönüşüm
    let strFloat = "3.14abc";
    let numFloat = parseFloat(strFloat); // numFloat = 3.14 (kayan nokta sayı)
    
    • Number(value): Herhangi bir değeri sayıya dönüştürür. parseInt ve parseFloat'a göre daha katıdır. Eğer dizgi tamamen sayıya dönüştürülemezse, NaN döner.
    // Number ile açık dönüşüm
    let strNum = "123.45";
    let numFromNumber = Number(strNum); // numFromNumber = 123.45 (sayı)
    
    let strInvalid = "hello";
    let numInvalid = Number(strInvalid); // numInvalid = NaN
    

Farklar ve özellikler:

Yöntem Açıklama Geçersiz dizgi ile NaN döner İlk sayı olmayan karaktere kadar analiz eder
+string İçsel artı ile iç dönüşüm. NaN Hayır (tüm dizgi)
string - 0 Çıkarma ile iç dönüşüm. NaN Hayır (tüm dizgi)
parseInt() Tam sayı analizi. NaN Evet
parseFloat() Kayan nokta sayı analizi. NaN Evet
Number() Açık dönüşüm. Daha katı. NaN Hayır (tüm dizgi)

Hangi yöntemin kullanılacağı, belirli göreve ve giriş dizgisinin beklenen formatına bağlıdır. Number(), tam veya ondalıklı sayıları, ek karakterler olmadan temsil eden dizgilerin dönüştürülmesi için tercih edilir. parseInt() ve parseFloat() ise, ek semboller içeren dizgelerden sayısal değerler çıkarmak için kullanışlıdır (örneğin, ölçü birimleri). İçsel dönüşümler dikkatli kullanılmalı ve davranışları anlaşılmalıdır.