Transcript for:
JavaScript में संख्याएँ और गणित

हाँ जी स्वागत है आप सभी का चाई और कोड के एक और वीडियो में हम कंटिन्यू कर रहे हैं अपनी जावास्क्रिप्ट की सीरीज को क्योंकि कुछ भी और पढ़ने से पहले react हो, चाई angular हो, चाई react native हो जावास्क्रिप्ट के foundation इतने strong कर दूँगा कि आपको इस वीडियो के अंदर पहले प्लान ये था कि हम सिर्फ numbers कवर करेंगे जो कि बहुत चोटा सा topic है और उसके बाद हम next वीडियो में maths कवर करेंगे पर फिर मुझे लगा कि वीडियो आप लोग appreciate करी रहे हैं अब क्योंकि आपने already subscribe कर दिया है पर please कर दीजे subscribe इससे मुझे बहुत motivation मिलती है numbers और maths के बारे में आपको यहां तक कि MDN में भी जाके जादा पढ़ने की जरूरत नहीं पढ़ेगी, यह वीडियो आपने देख लिया है, more than enough है आपके लिए, तो चलिए शुरू करते हैं, मैंने एक और नई फाइल यहां पर बना दी है, 6 number की, nums and maths, first part में इस वीडियो के हम numbers के बारे में बात करेंगे, और second part में हम maths के बारे में बात करेंगे, वो ही सारा जो मैं practically production level पे काम मिलेता हूँ, अब numbers अब जब भी define करते हैं, जैसे कि आपने करा कि एक score आपको define करना है, किसी game का, या फिर कोई account में कोई balance है, वो आपको define करना है, तो आप सीधे जाते हैं, और इस तरह से number को define कर देते हैं, ये बहुत ही simple pattern है, और बहुत ही easy सा pattern है, इस pattern को मैं चाहूँगा कि एक बार मैं ठीक है इसमें कोई problem नहीं है और एक interesting चीज और है कि मैं यहाँ पे console log भी करना चाहूँगा कुछ interesting चीज हैं आपको दिखाने के लिए जो की आपके बहुत काम आएगी तो मैं इसको दिखता हूँ score और आपने देखा कि score का value आ गया है आपके पास 400 ठीक है अभी तक कोई problem नह तो जैसे कि मैंने किया यहाँ पर एक const लिखते हैं, इस बार हम balance लेते हैं, suppose करिये आप कोई banking application बना रहे हैं, तो आप new keyword का भी use कर सकते हैं, बहुत सारे javascript में आपको objects मिलते हैं, जैसे कि string भी मिलता है, number भी मिलता है, और आप dedicate ली define कर सकते हैं कि मुझे तो number ही चाहिए, अब 100% guarantee है कि यह number ही होगा, और मैं यहाँ पर console lock भी कर सकता हूँ, कि ठीक है console lock किया, और मैंने balance को लिया यहाँ पर, ठीक है, अब इस जब console log को करते हैं, तो आपके पास कोई भी अचमवा नहीं होगा, जैसे कि for example, मैं यहाँ पर इस file को run करता हूँ, 01 basics के अंदर 06 file है, 06, उपस, 06 के बाद एक space दे दिया है, जो कि नहीं देना चाहिए था, तो इस file को हम करेंगे rename, क्योंकि अच्छी practice नहीं है, spaces द और बेसिक्स 06 अभी भी नहीं डिटेक्ट हो रहा है आई थिंग फाइल शायद आउटसाइड हो गई है ऐसा नहीं होना चाहिए था इसको अंदर रखते हैं यहां पर प्लीज मूव करिए हां जी अभी ठीक है तो 06 आप ठीक है तो ठीक है अब दोनों में difference क्या है वो देखिए इसने बोला कि 400 है क्योंकि automatically define हुआ है कि वो number type का है लेकिन यहाँ पे जो number है इसने specifically cast किया है बोला है कि number है ये specially 100 तो यही एक चोटा से difference आता है जब आप specially बोलते हैं कि new object में define कर रहा हूँ जो कि number type का है इसका difference आपको थोड़ा अब देखें जैसे मैंने ये balance को print करा तो देखें इसका type अपने आप number आया है जैसे कि हमें console log में मिला था इसको जब आप expand करते हैं तो आपको पता है कि ये है और prototype के थरू आपको जो भी properties available है जो की बहुत ही कम है वो numbers में आपको मिलती है जैसे कि आप number को string में भी convert कर सकते ह यह numbers में इतनी ही values काम में आती है इससे ज़्यादा कुछ काम में आती भी नहीं है अब इतनी सारी values हमने देख लिये है तो obvious ही बात है कुछ का थोड़ा सा practical example भी देख ले तो वो भी हम देख लेते है तो एक जो example है हमारे पास console log ही करेंगे हम सबको two string तो जैसे ही आप इसको two string में convert करेंगे तो आप देखेंगे interestingly ये number 100 ही है लेकिन अभी इसका अगर आप type of check करेंगे तो वो string बन गया है अब string बनने से क्या होता है कि आपके पास additional properties भी इसके पास आ जाती है जैसे कि string बनी गया है तो string के पास हमें पता है dot length property भी है, concat भी है, जो भी आपको चाहिए इस तरह से आप length देख सकते हैं तो जैसे मैं इसको run करता हूँ तो अब मुझे पता है 3 आया क्योंकि जो 100 है उसके अंदर 3 characters हैं सिर्फ इतना ही नहीं, आप चीजों को fixed भी बना सकते हैं, और भी कुछ values को आप define कर सकते हैं, जैसे कि अभी मेरे पास है 100, लेकिन मैं इस 100 को देता हूँ, 100 point, suppose करें, या फिर कुछ भी point नहीं देता हूँ, फिर भी मैं यहाँ पर fixed को use करना चाहूँगा, तो मैंने कहा कि मुझे चाहिए to fixed, यह method आप बहुत बार यूज़ करेंगे, to fixed के अंदर आपको एक property भी देनी पड़ती है, जो की होती है number, तो जब मैंने इसको बोला कि number 2 दो मुझे, तो क्या आएगा अ� यह आप काफी बार use करेंगे, अब इसमें आया 100.000000, तो specially जब आप e-commerce application बनाएंगे, वहाँ पे क्या होता है, कई बार calculation होता है, multiplication होता है, आपने GST calculate करा, तो precision value कुछ जादा ही बड़ी हो जाती है, अब obviously बात है, client को उतना precision value देखने का आदत नहीं होता है, तो उस case में आप two fixed हमेशा use करिए, specially जब आप e-commerce application बना रहे हैं, आप चाहें तो precision value का one भी ले सकते हैं, ऐसी कोई बात नहीं है, कि decimal के बाद मुझे two fixed चाहिए, तो उसमें भी कोई इशू नहीं है, आपके पास 100.0 आएगा, जैसा भी आप client को दिखाना चाहते हैं, मैंने जितनी भी application यूज़ करिए, वहाँ पे 2 fixed में, 2 ही usually मैंने यूज़ किया है, अब ऐसा नहीं है कि इसी तरह से आप precision value को और भी तरह से यूज़ कर सकते हैं, यह तो कुछ और properties दिखाने के लिए, अब क्योंकि ये number है, तो यहाँ पे आप और properties को भी use कर सकते हैं, जैसे कि आपने कहा, other number, अब यहाँ पे एक property आप कई बार देखेंगे, जो की है to precision, ये बड़ी ही interesting property है, इसको जैसे run करेंगे, the number significant digit must have range between 1 and 21, return से string, यह बहुत important है, इसने वापिस जो करेगा आपको value वो string type का होगा, contains a number, represent either exponential, fixed या जो भी है इस तरह से, तो अब interesting चीज़ यह है कि मैंने इस पर बोला precision, precision कितना चाहिए, suppose करिए मैं इसको value देता हूँ 3, तो precision value क्या हैगा, यह आपको पता होना बहुत ही जरूरी है, देखे 23. तो value क्या आता है, यहाँ पर बहुत सारे लोग गलतियां करते हैं, interview में पूछे जाता है, तो notice करिए आपके पास आया 124, तो इसने जो मतलब है precision का वो है, कि मुझे precise value चाहिए, लेकिन मुझे कितनी value पर focus करना है, तो precision आपने जैसे ही बोला 3, तो अब इसने कहा कि ठीक है, तो notice करिए, इसने उसको automatically convert कर दिया, कि ये तो रही है आपकी 3 precision value, और बाकी exponential में देता हूँ, तो बहुत ही ध्यान से use करिएगा precision को, बहुत ही interesting है, लेकिन use करने के लिए आपको पता होना चाहिए, कि ठीक है, priority जो मिल रही है, वो decimal के पहले मिल रही है, decimal के बाद भी priority मिल सकती है, लेकिन आपको calculation और आपकी value पे dependency होनी चाहिए, कि हाँ मुझे पता है 100% value 3 ही आएगी decimal से पहले, तो यहाँ पे 123.9, तो ठीक है, precision बहुत ही interesting है, एक और जो चीज मुझे बड़ी interesting लगती है, जावास्किट के कई आपने shots और tutorial लेके होंगे, वहाँ पे use आती है, जैसे एक और number हम यहाँ पे define करते हैं, या फिर इसी को use कर लेते हैं, एक और number define करते हैं, suppose करिए hundreds, कोई भी एक number लेलता हूँ, मैंने यहाँ पे define करा, 1, 2, तो अब ये जो zeros है, ये कई बार calculate करना या फिर देखना बड़ा ही difficult होता है, तो JavaScript के अंदर आपको कुछ methods मिलते हैं, जिससे आप at least उनका representation easy कर सकते हैं, तो जैसे मैंने hundreds बोला, तो इसको आप convert कर सकते हैं to locale string में, जैसे आप to locale string को method है, तो execute करना पड़ेगा, जैसे इसको वाले वा अच्छा इतनी बात हो गई है तो कुछ बात उनके लिए भी की जाए जो कि competitive programming या फिर DSA और इस तरह के आगे तो उसमें concept होता है कई बार max value और min value का, कितनी maximum value numbers में ले सकते हैं, big int के हम बात नहीं कर रहे हैं, तो उसके लिए भी होता है, मैं आपको सीधा यहीं पे बता देता हूँ, वो जाधा आसान रहेगा, तो हमें पता है कि number एक data type है हमारे पास, तो इसके साथ ही attached आपको direct properties भी मिलते हैं, is safe integer, safe integer तो आपको काफी values मिलती है लेकिन min value और max value भी मिलती है तो max value जैसे आप लेंगे तो आपको पता है यही maximum value हो सकती है जावास्कृट के अंदर number की इसी तरह से आपको min value भी मिलती है तो आप चाहें तो min value पे भी जा सकते हैं कि यह minimum value हो सकती है max safe integer भी दिया जाता है कि यह safe integer है इतना ही value मैं interesting चीज है यह number तो अभी हमने आप चाहें तो epsilon values, is finite कितना हो सकता है, integer है, बहुत सारे और भी method है, but mixly, max आप यही काम मिलेंगे, ठीक है, यह तो बात हो गई हमारी numbers के बारे में, ठीक है, तो इतना तो हमने कर लिया numbers के बारे में, अब हम क्या करते हैं, थोड़ा सा maths के बारे में भी बात करते हैं, यहाँ तो जो Maths सबजेक्ट है या फिर Maths जो लाइबरेरी है वो जावसकेट के साथ आती है by default और बहुत interesting और बहुत powerful लाइबरेरी है सबसे पहले मैं क्या करता हूँ यह बहुत सारे console log मैंने लिख रखे हैं तो इनको comment कर देते हैं ताकि problem ना हो हमें समझने में जो भी हम समझना चाहते हैं Maths के अंदर ठीक है इसको भी कर देते हैं और इसको भी कर देते हैं जावस्क्रिप्ट की सबसे interesting चीज ही maths है एक बार console log करते हैं कि actually में जब हम यहाँ पे बोलते हैं math और again M capital है math का क्योंकि यह भी एक default ही है जावस्क्रिप्ट के अंदर जैसे number है वैसे सी तो इसको जब आप run करेंगे तो interestingly आप काफी चीजे देखेंगे जिसके अंदर बहुत सारी properties है problem यह है कि यहाँ पे जब हम इसको print करते हैं तो आपके पास इतना detailed value नहीं आती है लेकिन यही जब हम जाते हैं inspect element के अंदर तो यह हम गए maths, और यह रहा maths के अंदर, जो भी object के अंदर आपको values मिली हैं, तो कुछ values हमें direct मिलती हैं, जैसे dot pi, तो मुझे पता है यह सारी properties है, तो dot लिखके मैं direct access कर सकता हूँ, जैसे मैंने length किया था, dot pi, dot square root, जो भी है यह सब, मैंने कभी use नहीं करा, सिर्फ pi के लाव interesting वाली जो है या फिर जो जादा तरह आप use करेंगे उसके बारे में मैं आपको थोड़ा सा यहाँ पर detail बता देता हूँ ताकि आपको MDN में ना जाना पड़ें तो यहाँ पर मैंने लिया log अब क्या है इसके अंदर हम लेते हैं maths value को तो हमने बोला maths के साथ मुझे बताईए ABS क्या है ABS ए absolute value negative values है जैसे minus 4 या कुछ आपको उनको just sign change करना है plus में करना है आप sign change करना है minus plus में ऐसा नहीं होता है सिर्फ minus values positive हो जाते हैं, यही absolute होता है, तो देखिए 4 हो गया है, लेकिन ऐसा नहीं है कि मैं यहाँ पर 4 दूँगा, तो वो minus 4 हो जाएगा, ऐसा नहीं होता है, positive ही रहता है, लेकिन negative positive ही बन जाता है, और इसके लावे एक और जो interesting आपको यहाँ पर दिखेगा, वो है यहाँ अब आप चाहते हैं कि मुझे decimals के अंदर काम में नहीं लेना है, तो 4.3 का मुझे round off करके दे दो, जैसे आप round off करेंगे, तो 4.3 का 4 round off कर दिया, जैसे आप यहाँ पे 4.6 लिखते हैं, बोलते हैं मुझे round off कर दो, तो उसने का 5, तो जैसे हम regular days में करते हैं, कि 5 सुपर values है, तो round off में bigger number choose कर लो, या smaller number, मुझे control करना है, कि value upper वाली choose होगी, या lower वाली choose होगी, तो भी आपको दो method मिलते हैं, तो first method आपको मिलता है CEIL, जिसको ceiling बोलते हैं, ceiling मतलब top, तो obvious भाग है top वाले number choose करेगा, even though मैंने लिख रखा है यहाँ पर जैसे 4.2, तो यह बोलेगा कि ठीक है, 4.2 का मैं 5 ही करूँगा, ceiling मतलब चरा सा भी 4 से जादा हुआ, तो top value ही choose करूँ� तो अगर आपने 4.2 लिखा है तो भी 4 ही लेगा, या फिर 4.9 भी आपने लिखा है, तो भी हमें पता है floor lowest value ही लेगा, तो cautiously use कीज़ेगा, जातर आप round ही use करने वाले हैं, floor और seal वाले बहुत ही कम जगे आप use करेंगे, इसके लावा अभी हमने methods देखे हैं यहाँ पे, जो कि मतलब उससे डिवाइड कर देगी तब ही तो value है, जैसे 25 का square root 5 आएगा, कहने की बात ही है, तो इसी तरह से आपके आप square root है, आपके आप power भी है, आप चाहो तो किसी की power calculate करनी है, और आपको लगता है कि वो star वाला method इतना ठीक नहीं है, तो आप directly math library का use यहाँ पे और भी values आपके पास चाहें तो आप इनके साथ भी खेल सकते हैं जैसे कि यहाँ पे values आपको मिलती है math.min तो अगर आपको find करना है कि array के अंदर सबसे lowest value कौन सा है तो आप pass on कर सकते हैं यहाँ पे जैसे 4, 3, 6, 8 तो आपको मिल जाएगी minimum value और अगर आपने guess किया ह अब interesting बात पे आते हैं, math library use कहां आते हैं, और सबसे बाद आप कहां use करने वाले हैं, आप जहां इसको use करने वाले हैं, वो है math.random पे, इसके बारे में हम discuss कर लेते हैं, क्योंकि इसका discussion बहुत ज़रूरी है, तो यह हुआ math.random, again method है, run करते हैं, तो यह जो math.random है, सबसे पह इसको मैं दुबारा run करूँगा तो value है 0.90 तो math.random की value हमेशा और हमेशा आएगी 0 और 1 के बीच में ठीक है? तो 0 से 0 भी हो सकती है, 1 भी हो सकती है तो 0 और 1 के बीच में ही values आती है अब interesting चीज़ क्या आती है math.random के अंदर कि ये तो आई values लेकिन अब आपके पास जो question आएंगे या फिर आपके जास जो problem statement होगा उसमें आपको कुछ range से कुछ range के बीच में values होगी आपको पता है 1 से 6 के बीच में ही मुझे values चाहिए, या फिर कोई और game बना रहे हैं तो 1 से लेके 10 के बीच में ही मुझे values चाहिए, अब अगर math.random की value 0 और 1 के बीच में आती है, mostly decimal ही आती है, तो क्या हो अगर मैं उसको 10 से multiply कर दू, जिसको भी आप 10 से multiply करते हैं, तो आपक 3 आया, दोनों बार मैंने इसको run करा तो उपर देख रहे हैं हम यहाँ पे 0 है और यहाँ पे देख रहे हैं हम 3 है, ठीक है यहाँ पे value, obvious बात है second वाले में shift हो जाएगी तो 5 लेकिन क्योंकि मैंने आपको बताया कि value जो है 0 भी हो सकती है क्योंकि value क्या सकती है 0.041 तो उस case को avoid करने के लिए plus 1 कर देते हैं कि उस case को मैं avoid कर दूँ कि 0.04 भी तो हो सकता है तो उसको करेंगे तो problem हो जाएगा तो अभी जो value है उसका guarantee है कि ये 7 आया, तो guarantee है कि minimum value 1 आएगी, 0 तो नहीं आएगी, ठीक है, इतना case हो गए हमारे पास, अब क्या करता है कि हम usually क्या होता है कि ये जो values है, इस तरह से 1 एड़ करेंगे तो 10 multiply है तो फिर board mass वगरा ये वो काफी problem हो जाएगा, तो exact same को avoid करने के लिए हम क्या करते हैं, पहले इस math.random को multiply कर देते हैं 10 से और इसको wrap कर दिया bracket के अंदर, अब जो आया, जो भी result आया उसको कर दीजे plus 1, तो अभी मुझे पता है, guaranteed है 100%, कि जो values होगी, वो confirm होगी, और मुझे कोई maths के बारे में, कि कौन सा वाला first execute होगा, कौन सा वाला second execute होगा, ये भी पता करने की जरूरत नहीं है, तो अभी guarantee है, कि दोनों बार देखे, 6 आया, 4 आया, लेकिन ये values तो, काफी जादा जा रही है, 0 और 9 के बीच में, एक जो चोटा सा trick है, वो है min और max define करने का, और एक चोटा सा formula भी मैं आपको यहाँ पर देता हूँ, याद रखेगा इस formula को, तो आपने value define करी यहाँ पर min, ठीक है, और मैंने इसको दिया 10, और एक value define करता हूँ यहाँ पर max, यह आपको stack overflow वगरा पर कई जोगे दिखाई देगा, तो obviously बाते define हो गया है, कि मुझे चाहिए values 10 और 20 के बीच में, जो concept हमने उपर सीखा है line number 28, 29 में, exact same concept वो ही use होता है, लेकिन इसका एक generic syntax formula बन जाता है, तो वो कैसे बनता है, वो भी मैं आपको दिखाता हूँ, कौन सा log बाद में करेंगे, पहले इसको समझेंगे, तो हमने क्या करा, इसको बोला math.random, ठीक है, अच्छा एक चीज और मैं आपको बता दू, यहाँ पे जो values है, वो हमें चाहिए क तो यह भी आप कई बार देखेंगे कि यहाँ पे math.floor भी लगाया जाता है, floor अभी हमने just देखा, तो इतना कोई difference नहीं आएगा, but यह है कि floor value अभी just हमने समझी है, तो वो result इसके पास आ जाएगा, इसको अगर हम run करते हैं, तो obvious ही बात है, आप देख सकते हैं कि 7 values आई, त अब क्या देखा हमने यहाँ पे math.random को multiply करते हैं कि इतना तो value चाहिए हमें ठीक है तो अब उसके लिए हम क्या करते हैं एक चोटा सा formula यहाँ पे सीख लेते हैं इसको multiply करना है आपको किस से multiply करना है जैसा कि हमने देखा अभी 10 से किया तो अभी एक formula है यहाँ पे max, minus, min और और क्योंकि आपको जो भी minimum value चाहिए, तो अब इसी बात है, अभी तो हमने क्या इंतजाम करा, कि 0 को avoid करा है इस first one से, but अभी मैं कह रहा हूँ कि नहीं, मुझे तो सिर्फ 0 से खाम नहीं चलेगा, मुझे तो minimum 10 value तो दो ही दो, इससे उपर ही दो, तो आप क्या करो, यहाँ प dot log, अब यहाँ पे जो final number आएगा, तो आप देखेंगे क्या है 5.9, तो यह तो चाहिए नहीं, अब यह उपर हमने देखा कि यह एक ही digit चाहिए, तो क्या करो, math.floor कर दो तो ठीक है, तो इस सब को हमने कहा कि आप हो जाओ, cut एक बार math.floor और उसके अंदर हमने paste कर दिया, यह syntax तो हमें समझ आई गया है, अब mat.floor करने से क्या होगा, ठीक है, guarantee हो गई कि अभी values आ रही है, but values देखे 2 भी आ रहा है, 1 भी आ रहा है, 6 भी आ रहा है, और minimum कितना चीए मुझे, 10 तो चीए चीए, तो क्या करो, simple सा है, यहाँ पे आओ, और 19, तो थोड़ा से इसको और जानियेगा, देखियेगा कि first step में, second step में क्या हो रहा है, कहीं न कहीं अगर आपके notes हैं, तो इस line number 34 को तो लिखी लीजेगा notes में, एक बार दुबारा से मैं आपको basic समझाता हूँ यहाँ पे, कई बार हो सकता है लोग confused हो जाएं, math.random जो है अब problem क्या आता है जब आप उसको 10 से multiply करते हैं कि हमने values को shift तो कर दिया left में, लेकिन हो सकता है कई बार value है 0.1, तो math.floor जो है वो आपको value दे देगा 0, उस case को avoid करने के लिए मैंने उसमें 1 add कर दिया, क्योंकि मेरा जो minimum case है कि मेरे को value चाहिए, वन से तो उपर चाहिए और आगे कितना भी हो सकता है, तो यह मुझे जो values देगा वो 1 से लेके 9 तक के बीच में देगा, लेकिन कई बार case आता है कि आपको min भी define करना है और max भी define करना है, तो उस case में हमने क्या करा कि math.random का तो use करा ही करा, plus हमने उसको multiply सीधा 10 से करने की बज़ा हमने क्या करा, max minus min ताकि मेरे पास वो range आ जाए कि इस range के अंदर चाहिए मुझे, और plus 1 करने के लिए ताकि 0 case avoid कर दू. मैंने उसके अंदर एक minimum value add कर दी, तो I think ये जो summarize किया है इससे आपको और ज़ादा चाहिए और समझ में आ गया होगा. तो ये था कुछ important और detail बाते math के बारे में और number के बारे में, इस वीडियो के बाद आपको और कुछ नहीं देखना पड़ेगा, हो सके तो इस वीडियो को एक दो बार और 1.5 speed में देख लीजेगा, अब सबसे important काम कर लें ताकि आपके पास notes मिल जाए, math and num इसको हम add कर देते in-depth video के अंदर JavaScript को strong करना है तो videos थोड़े लंबे तो होंगे मिलते हैं अगले video में