जैसे-जैसे वेब और एप्लिकेशन अधिक जटिल होते जाते हैं, वैसे-वैसे जावास्क्रिप्ट और Node.js एक डेवलपर के प्रदर्शनों की सूची में सामान्य आवश्यकता बनते जा रहे हैं। अपने कोड-फू को बेहतर बनाने और आपके सामने आने वाले सिरदर्द को कम करने के लिए, आप अपने कोड में कुछ ऐसे कार्यों को परिभाषित कर सकते हैं जो सरल कार्यों को जल्दी से पूरा करते हैं।
ध्यान दें कि जावास्क्रिप्ट जावा के समान नहीं है। यहां अंतर देखें।
1. किसी सरणी में मानों के आस-पास शफ़ल करें
कार्ड के डेक को फेरबदल करने की तरह, आप इस एक-लाइनर के साथ जावास्क्रिप्ट में जितनी बार चाहें उतनी बार मानों को एक सरणी में फेरबदल कर सकते हैं:
const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());
कार्ड सादृश्य के डेक को ध्यान में रखते हुए, अगर मैं 52 मानों को फेरबदल करना चाहता हूं तो यह ऐसा दिखेगा:
let myarray = Array.from({length:52},(v,k)=>k+1); console.log(shuffleArray(myarray));
कोड को आपके कंसोल आउटपुट में बेतरतीब ढंग से अव्यवस्थित मानों को प्रकट करना चाहिए।
2. जांचें कि कोई तारीख सप्ताहांत या सप्ताहांत पर है या नहीं
एक साधारण शेष संकार्य का उपयोग करके, आप आसानी से जांच सकते हैं कि जावास्क्रिप्ट में सप्ताहांत पर कोई दिन आता है या नहीं:
const isWeekend = (date) => date.getDay() % 6 == 0;
यदि आप इसे बदलना चाहते हैं तो यह जांचने के लिए कि क्या विचाराधीन दिन एक सप्ताह के दिन पड़ता है, बस पिछली तुलना को उलट दें:
const isWeekday = (date) => date.getDay() % 6 !== 0;
निम्नलिखित कोड में, मैं जाँचता हूँ कि क्या आज सप्ताहांत है:
console.log(isWeekend(new Date()));
अलग isWeekday
. को परिभाषित करने के विकल्प के रूप में या isWeekend
चर, आप बस NOT
का उपयोग कर सकते हैं if-then-else
. को व्यक्त करते समय संकार्य दो चरों में से किसी एक के लिए कथन जैसे:
if(!isWeekend(new Date())) { console.log("Today falls on a weekday."); } else { console.log("Today falls on a weekend."); }
3. किसी संख्या को एक विशिष्ट दशमलव बिंदु तक काटें
आपके द्वारा अपने उपयोगकर्ताओं को दिया जाने वाला आउटपुट जितना संभव हो उतना सरल होना चाहिए और कोई भी चीज़ आपकी साइट या ऐप को संख्याओं की एक विशाल विकृत स्ट्रिंग को देखने से अधिक आकर्षक नहीं बनाती है। किसी संख्या में कम महत्वपूर्ण दशमलव बिंदुओं को काटने के लिए और इसे उपयोगकर्ता को इस तरह प्रदर्शित करने के लिए, इस निफ्टी परिभाषा को पकड़ें:
const decimalFormat = (n, places) => ~~(Math.pow(10, places) * n) / Math.pow(10, places);
इसका परीक्षण करने के लिए, मैं दशमलव स्थानों की हास्यास्पद मात्रा के साथ एक संख्यात्मक मान परिभाषित करता हूं और इसे दो दशमलव स्थानों पर काटने के लिए इस त्वरित फ़ंक्शन को कॉल करता हूं।
let deciwow = 299.39542014592 console.log(decimalFormat(deciwow, 2));
परिणाम कम आंखों वाला होना चाहिए।
4. तापमान बदलें
जावास्क्रिप्ट में सेल्सियस को फारेनहाइट में बदलने का कोई मानक तरीका नहीं है, लेकिन दो सरल वन-लाइनर्स के साथ, आप अपना खुद का मानक बना सकते हैं।
सेल्सियस से फ़ारेनहाइट के लिए:
const cToF = (celsius) => celsius * 9/5 + 32;
और फारेनहाइट से सेल्सियस के लिए:
const fToC = (fahrenheit) => (fahrenheit - 32) * 5/9;
मेरे शहर में तापमान -2 डिग्री सेल्सियस है। सेल्सियस से फ़ारेनहाइट रूपांतरण वन-लाइनर का उपयोग करके हम यह पता लगा सकते हैं कि अमेरिका में रहने वाले किसी व्यक्ति के लिए इसका क्या अर्थ है:
cToF(-2);
वह व्यंजक 28.4 डिग्री फ़ारेनहाइट का तापमान देता है।
5. जांचें कि कोई व्यक्ति डार्क मोड का उपयोग कर रहा है या नहीं
यदि आप चाहते हैं कि आपके द्वारा प्रदर्शित सामग्री आपके कोड का उपयोग करने वाले व्यक्ति की रंग योजना का सम्मान करे, तो जावास्क्रिप्ट में यह पता लगाने का एक तरीका शामिल है कि कोई व्यक्ति डार्क मोड का उपयोग कर रहा है या नहीं ताकि आप उसके अनुसार रंगों को समायोजित कर सकें। लिखने की विधि थोड़ी जटिल है, लेकिन आप इस एक-लाइनर का उपयोग करके इसे छोटा कर सकते हैं:
const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
इस चर का उपयोग करने वाले चेक का एक उदाहरण यहां दिया गया है:
if (isDarkMode) { console.log("This screen is in dark mode."); } else { console.log("This screen is not using dark mode."); }
ध्यान दें कि यह कोड केवल ब्राउज़र के लिए जावास्क्रिप्ट में काम करता है। Node.js window
. के लिए समर्थन लागू नहीं करता है ।
6. संख्याओं की एक सरणी का औसत प्राप्त करें
डेटासेट के साथ काम करते समय, जावास्क्रिप्ट में सरणियों से जुड़ा एक आसान कार्य होता है जो आपको एक विशेष तालिका के सभी मानों का योग प्राप्त करने के लिए आवश्यक अंकगणितीय प्रदर्शन करने देता है और फिर इन संख्याओं को तालिका की लंबाई से विभाजित करता है। कोड की एक पंक्ति में इसे सुंदर ढंग से करने के लिए, आपको केवल यह करने की आवश्यकता है:
const getAverage = (arr) => arr.reduce((a, b) => a + b, 0) / arr.length;
यहां मैं एक डेटासेट बनाता हूं और कंसोल के माध्यम से उसके सभी मूल्यों का औसत निकालता हूं:
let dataset = [2, 14, 88, 204, 1515, 1294, 12, 144]; console.log(getAverage(dataset));
इस कोड का उपयोग करके, आपका आउटपुट 409.125 होना चाहिए।
7. एक यूयूआईडी उत्पन्न करें
यदि आप अपने एप्लिकेशन का उपयोग करने वाले लोगों से आंकड़े और डेटा एकत्र करना चाहते हैं (उदाहरण के लिए, कुकी बनाकर), तो बिना आक्रामक हुए ऐसा करने का एक सबसे अच्छा तरीका एक सार्वभौमिक रूप से विशिष्ट पहचानकर्ता (यूयूआईडी) बनाना है। जावास्क्रिप्ट में RFC4122-संगत UUIDs उत्पन्न करने का एक आसान तरीका शामिल नहीं है (हालाँकि Node.js में uuid
है) npm पैकेज जो बॉक्स से बाहर यह कार्यक्षमता प्रदान करता है)।
JS में, आप इस एक-पंक्ति अभिव्यक्ति के साथ अपने उपयोगकर्ताओं के लिए नए सिरे से तैयार किए गए UUID को पॉप आउट कर सकते हैं:
const genUUID = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, genUUID));
यहां, मैं आउटपुट का परीक्षण करता हूं:
console.log(genUUID());
8. दो तिथियों के बीच दिनों की संख्या प्राप्त करें
एक निश्चित मूल्य (जैसे उपयोगकर्ता के खाते) की आयु निर्धारित करते समय, आपको उन दिनों की संख्या की गणना करनी होगी जो एक निश्चित बिंदु के बाद से बीत चुके हैं। यहाँ एक सरल वन-लाइनर है जो ऐसा करता है:
const ageDays = (old, recent) => Math.ceil(Math.abs(old - recent) / (1000 * 60 * 60 * 24));
उदाहरण के उपयोग के मामले के लिए, हम दिखावा करते हैं कि हम उस उपयोगकर्ता की उम्र का आकलन कर रहे हैं जिसने 28 दिसंबर, 2012 को अपना खाता बनाया था और इस घोषणा का उपयोग उस तिथि और आज के बीच के दिनों की संख्या प्राप्त करने के लिए करते हैं:
console.log(ageDays(new Date('2012-12-28'), new Date()));
इसे लिखते समय, इसका परिणाम 3298 दिनों का होना चाहिए।
9. एक सीमा के भीतर एक यादृच्छिक संख्या उत्पन्न करें
कभी-कभी, केवल कुछ यादृच्छिक संख्या उत्पन्न करना पर्याप्त नहीं होता है। आपको केवल उन शर्तों को सीमित करने की आवश्यकता हो सकती है जिनके साथ यह उत्पन्न होता है। इस वन-लाइनर के साथ, आप एक निश्चित निर्दिष्ट सीमा के भीतर संख्याएँ उत्पन्न करेंगे:
const rangeRandom = (low, high) => Math.floor(Math.random() * (high - low + 1)) + low;
इसका परीक्षण करना आसान होना चाहिए:
console.log(rangeRandom(400, 20000));
अक्सर पूछे जाने वाले प्रश्न
1. कुकीज़ में यूयूआईडी का उपयोग क्यों करें?
चूंकि कुकीज़ अपने स्वभाव से ही घुसपैठ करती हैं और उपयोगकर्ता की मशीन पर जगह घेरती हैं, इसलिए आपको डेटा इकट्ठा करने के लिए इन उपकरणों का उपयोग करते समय जितना संभव हो उतना कुशल और गैर-आक्रामक होना चाहिए। UUID का उपयोग करने से दुगना लाभ मिलता है। सबसे पहले, यह पहचानकर्ता की लंबाई में केवल 128 बिट होने के कारण क्लाइंट-आधारित भंडारण पर कब्जा किए गए स्थान को कम करता है। दूसरे, यह उपयोगकर्ता के किसी भी व्यक्तिगत डेटा पर निर्भर करता है।
2. डार्क मोड का पता लगाने पर मुझे Node.js में "विंडो परिभाषित नहीं है" त्रुटि मिलती है। मैं क्या करूँ?
Node.js क्लाइंट-साइड मॉड्यूल को कॉल नहीं कर सकता क्योंकि इसमें जावास्क्रिप्ट के समान आंतरिक क्लाइंट-सर्वर संबंध नहीं है। इस लेख में डार्क मोड डिटेक्शन वन-लाइनर विशेष रूप से ब्राउज़र-आधारित जावास्क्रिप्ट के लिए है।
3. क्या यह कोड सभी ब्राउज़रों के लिए सार्वभौमिक है?
जावास्क्रिप्ट कोड एक दुभाषिया का उपयोग करता है जिसे सार्वभौमिक रूप से कार्य करना चाहिए। हालांकि यह सैद्धांतिक रूप से सभी ब्राउज़रों पर काम करता है, लेकिन जिस तरह से वे आपके कोड की व्याख्या करते हैं, वह विशेष रूप से बहुत पुराने सॉफ़्टवेयर के साथ थोड़ा भिन्न हो सकता है। यहां व्यक्त किए गए सभी वन-लाइनर्स के मामले में, उन सभी को समान परिणाम लौटाने चाहिए, भले ही आपका उपयोगकर्ता जिस ब्राउज़र पर कोड चलाता हो। हालांकि सावधान रहें कि सामान्य रूप से जावास्क्रिप्ट में आपके द्वारा उपयोग की जाने वाली कुछ सुविधाएं पेल मून, इंटरनेट एक्सप्लोरर, या वर्तमान में सक्रिय रूप से विकसित ब्राउज़रों के 2000 के दशक के शुरुआती संस्करणों जैसे ब्राउज़र पर काम नहीं कर सकती हैं।