कृपया मुझे क्षमा अभी तक एक उत्तर पोस्ट, लेकिन मैं सिर्फ एक गूगल खोज के माध्यम से यहाँ हो गया और किया मैं चाहता था कि सभी विवरण नहीं मिला। Node.js में निम्न कोड चल रहा है:
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
कुछ उल्लेखनीय टेकअवे:
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);
}
निम्नलिखित उत्पादन देता
- तो परिवर्तित करने के लिए प्रयास करने से पहले एक अगर (वैल) के साथ की रक्षा संख्या के लिए, फिर parseFloat() व्हाइटस्पेस मामले को छोड़कर एक संख्या वापस कर देगा।
- संख्या सफेद-स्थान से अलग गैर-संख्यात्मक वर्णों को छोड़कर सभी मामलों में एक संख्या देता है।
कृपया किसी भी परीक्षण मामले को जोड़ने में संकोच न करें जो मुझे याद आ रही है।
तो क्या होता है यदि मैं 'नया नंबर (...) 'करता हूं? यह कैसे भिन्न है? – Neal
'typeof नई संख्या (3) ===" वस्तु "', जबकि 'typeof 3 ===" संख्या "' और 'typeof संख्या (3) ===" संख्या "' – jackwanders
आप एक संख्या वस्तु मिल जाएगा वापस , गैर-सख्त तुलना में यह 'valueOf' विधि कहा जाएगा, लेकिन गैर-वस्तुओं के साथ सख्त तुलना विफल हो जाएगी। यह 'Number' IMO वस्तुओं के साथ चारों ओर गंदगी के लिए सिर्फ एक बुरा विचार है (और के लिए क्या इसके लायक है, Crockford उन्हें या तो पसंद नहीं करता है) –