संख्याएं और गणित

एक शॉपिंग कार्ट कीमतों को जोड़ता है, एक गेम स्कोर को ट्रैक करता है, एक फॉर्म गणना करता है कि कितना कर देना है। यह सब संख्याओं और उनके साथ अंकगणित करने तक आता है। JavaScript संख्याओं को अपने मूल बिल्डिंग ब्लॉक में से एक मानता है, और यह अध्याय इस बारे में है कि आप उनके साथ क्या कर सकते हैं: रोज़मर्रा की गणित, गोलाई और यादृच्छिकता के लिए बिल्ट-इन सहायक, और वह भाग जो लगभग सभी को परेशान करता है, पृष्ठ में टाइप किए गए पाठ को एक संख्या में बदलना जिसे आप जोड़ सकते हैं।
संख्याएं और अंकगणित
JavaScript के पास एक number टाइप है, और यह सब कुछ कवर करता है। 42 जैसी पूरी संख्याएं और 9.99 जैसे दशमलव दोनों एक ही तरह के मूल्य हैं, इसलिए आप कभी उनके बीच चुनाव नहीं करते:
const price = 9.99;
const quantity = 3;
const total = price * quantity;
console.log(total); // 29.97आप उन प्रतीकों के साथ गणित करते हैं जिन्हें आप पहले से जानते हैं: + जोड़ता है, - घटाता है, * गुणा करता है, और / विभाजित करता है। एक और है जो कम परिचित है, %, शेषफल। यह आपको विभाजन के बाद बचा हुआ बताता है:
const remainder = 7 % 2;
console.log(remainder); // 1सात को दो से भाग देने पर तीन और एक बचता है, इसलिए 7 % 2 1 है। यह चेक करने का तरीका है कि एक संख्या सम है या नहीं: एक सम संख्या को दो से भाग देने पर कुछ नहीं बचता है, इसलिए number % 2 सम संख्याओं के लिए 0 है और विषम संख्याओं के लिए 1 है।
number टाइप है, इसलिए पूरी संख्याएं और दशमलव एक ही चीज हैं और आप कभी उनके बीच चुनाव नहीं करते। ऑपरेटर + - * / हैं और %, शेषफल, जो विभाजन के बाद बचा है। चतुर ट्रिक % 2 है: सम संख्याओं के लिए यह 0 है और विषम संख्याओं के लिए 1 है। Math ऑब्जेक्ट
जब आपको मूल ऑपरेटरों से अधिक की आवश्यकता होती है, तो JavaScript आपको Math देता है, एक बिल्ट-इन गणित सहायकों का संग्रह। आप उन्हें एक डॉट के साथ नाम से कॉल करते हैं:
console.log(Math.round(4.6)); // 5
console.log(Math.floor(4.6)); // 4
console.log(Math.ceil(4.1)); // 5Math.round निकटतम पूरी संख्या को गोल करता है, Math.floor हमेशा नीचे की ओर गोल करता है, और Math.ceil हमेशा ऊपर की ओर गोल करता है। Math.max और Math.min भी हैं, जो आपको देने वाली संख्याओं में से सबसे बड़ी या सबसे छोटी चुनते हैं:
console.log(Math.max(3, 8, 5)); // 8
console.log(Math.min(3, 8, 5)); // 3और Math.random, जो 0 से (लेकिन 1 के बिना) एक यादृच्छिक दशमलव देता है। अकेले यह शायद ही कभी वह होता है जो आप चाहते हैं, इसलिए सामान्य रेसिपी इसे गुणा करने और गोल करने के लिए एक यादृच्छिक पूरी संख्या प्राप्त करना है:
const roll = Math.floor(Math.random() * 6) + 1;
console.log(roll); // 4 (हर बार एक अलग संख्या)Math.random() * 6 0 से 6 तक कहीं आता है, Math.floor इसे 0 से 5 तक की पूरी संख्या में गिराता है, और + 1 इसे 1 से 6 तक के पासे की रोल में बदल देता है।
Math एक तैयार-निर्मित गणित सहायकों का टूलबॉक्स है जिसे आप एक डॉट के साथ कॉल करते हैं: Math.round, Math.floor (नीचे), Math.ceil (ऊपर), और Math.max / Math.min सबसे बड़े और सबसे छोटे के लिए। Math.random 0 से 1 तक एक दशमलव देता है, और याद रखने लायक रेसिपी Math.floor(Math.random() * n) एक यादृच्छिक पूरी संख्या के लिए है। मुझे उस पैटर्न पर विश्वास करने में कुछ कोशिशें लगीं, इसलिए इसे कॉपी करें और धीरे-धीरे पढ़ें। स्ट्रिंग्स को संख्याओं में बदलना
कुछ भी एक व्यक्ति एक पृष्ठ में टाइप करता है टेक्स्ट के रूप में आता है, भले ही यह एक संख्या की तरह दिखे। एक बॉक्स में 5 टाइप करें और आपको संख्या 5 नहीं, स्ट्रिंग "5" मिलता है। यह महत्वपूर्ण है क्योंकि दो स्ट्रिंग्स पर + उन्हें जोड़ता है न कि जोड़ता है:
const a = "5";
const b = "3";
console.log(a + b); // "53", 8 नहींगणित करने के लिए, आप पहले पाठ को संख्या में बदलते हैं। सबसे स्पष्ट तरीका Number() है:
const count = Number("5");
console.log(count + 3); // 8दो और हैं जो आप देखेंगे: parseInt एक पूरी संख्या पढ़ता है और किसी भी दशमलव को गिराता है, और parseFloat दशमलव रखता है:
console.log(parseInt("42px")); // 42
console.log(parseFloat("9.99")); // 9.99ये दोनों कुछ पाठ की शुरुआत में बैठी एक संख्या को पढ़ सकते हैं, जैसे "42px", जो Number नहीं कर सकता। एक शॉर्टकट भी है, एक स्ट्रिंग के सामने +, जो इसे Number के समान तरीके से बदलता है:
console.log(+"7"); // 7"5" संख्या 5 नहीं है, और "5" + "3" 8 के बजाय "53" देता है। पहले कनवर्ट करें: Number("5") सबसे स्पष्ट है, parseInt एक पूरी संख्या पढ़ता है, parseFloat दशमलव रखता है, और एक स्ट्रिंग के सामने + एक त्वरित शॉर्टकट है। जोड़ने के बजाय जोड़ने का जाल देखें, यह सभी को एक बार पकड़ता है। संख्याओं के तीव्र किनारे
JavaScript में संख्याएं एक आश्चर्य रखती हैं जो एक बार देखने लायक है। दो सरल दशमलव जोड़ें और आप एक अजीब उत्तर पा सकते हैं:
console.log(0.1 + 0.2); // 0.30000000000000004यह आपके कोड में बग नहीं है। कंप्यूटर दशमलव को इस तरह संग्रहीत करते हैं कि हर मान को बिल्कुल प्रतिनिधित्व नहीं कर सकते, इसलिए एक छोटी सी त्रुटि आ जाती है। यह शायद ही कभी महत्वपूर्ण है, और जब यह करता है, तो आप प्रदर्शन के लिए परिणाम को गोल करते हैं:
const sum = 0.1 + 0.2;
console.log(Math.round(sum * 100) / 100); // 0.3आप एक मान भी पूरा करेंगे जिसे NaN कहा जाता है, जिसका अर्थ है "संख्या नहीं"। आप इसे प्राप्त करते हैं जब एक गणित संचालन का कोई समझदारी से उत्तर नहीं होता, जैसे बेतुका पाठ को एक संख्या में बदलने की कोशिश करना:
console.log(Number("hello")); // NaNआपके आउटपुट में NaN देखना आमतौर पर मतलब है कि एक कनवर्सन कहीं गलत हो गया, इसलिए यह भय के लिए कुछ के बजाय एक उपयोगी सुराग है।
0.1 + 0.2 0.30000000000000004 के रूप में आता है, जो सामान्य है, आपके कोड में बग नहीं है। जब यह महत्वपूर्ण हो तो इसे दिखाने से पहले परिणाम को गोल करें। और NaN का अर्थ है "संख्या नहीं", उत्तर जो आप प्राप्त करते हैं जब कनवर्सन विफल हो जाता है, इसलिए इसे एक सुराग मानें कि कुछ पाठ आपकी अपेक्षा के अनुसार संख्या में नहीं बदला। संख्याएं अगले कहां जाती हैं
संख्याएं JavaScript में कुछ मुख्य data types में से एक हैं, पाठ और true/false मानों के साथ बैठती हैं। अधिकांश वास्तविक प्रोग्राम उन्हें मिश्रित करते हैं, एक स्ट्रिंग से एक संख्या निकालते हैं, इसकी तुलना करते हैं, variable में परिणाम संग्रहीत करते हैं, और ऑपरेटर जो उस तुलना और संयोजन को करते हैं वह अगले operators का विषय है।

