henüz başka Yanıt göndererek Affedersiniz, ama sadece bir Google araması ile burada var ve yaptığımız İstediğim tüm detayları bulamıyorum. Node.js aşağıdaki kodu çalıştırma:
val=1, Number()=1, parseFloat()=1, if()=true
val=1.1, Number()=1.1, parseFloat()=1.1, if()=true
val=0, Number()=0, parseFloat()=0, if()=true
val=1.1abc, Number()=NaN, parseFloat()=1.1, if()=true
val=, Number()=0, parseFloat()=NaN, if()=false
val= , Number()=0, parseFloat()=NaN, if()=true
val=null, Number()=0, parseFloat()=NaN, if()=false
Bazı önemli çıkarımlar::
var vals = ["1", "1.1", "0", "1.1abc", "", " ", null];
for(var i = 0; i < vals.length; i++){
var ifTest = false;
if(vals[i])
{
ifTest = true;
}
console.log("val=" + vals[i] + ", Number()=" + Number(vals[i])+ ", parseFloat()=" + parseFloat(vals[i]) + ", if()=" + ifTest);
}
şu çıktıyı verir
- Eğer dönüştürmek denemeden önce bir if (val) ile koruma numaraya, ardından parseFloat(), boşluk karakteri dışında bir sayı döndürecektir.
- Sayı, beyaz boşluk dışında sayısal olmayan karakterler dışında tüm durumlarda bir sayı döndürür.
Eksik olduğum test örneklerini eklemek için lütfen çekinmeyin.
Yani "Yeni Sayı (...)" yaparsam ne olur? Bu nasıl değişir? – Neal
'typeof new Number (3) ===" object "', "typeof 3 ===" sayı "ve" typeeof Number (3) === "sayı" ' – jackwanders
Bir Number nesnesini geri alırsınız katı olmayan karşılaştırmalarda 'valueOf' yöntemi çağrılır, ancak nesnelerle olmayan katı karşılaştırmalar başarısız olur. 'Number' nesneleri IMO ile uğraşmak için sadece kötü bir fikir (ve değer ne için, Crockford da onları sevmez) –