ट्रैक
/
JavaScript
JavaScript
/
सिलेबस
/
मूल बातें
मू

मूल बातें में JavaScript

3 अभ्यास

मूल बातें के बारे में

JavaScript एक डायनैमिक, प्रोटोटाइप-आधारित भाषा है। इसमें कुछ प्रिमिटिव होते हैं, और बाकी सब कुछ ऑब्जेक्ट माना जाता है।

हालाँकि यह वेब पेजों की स्क्रिप्टिंग भाषा के रूप में सबसे ज़्यादा जानी जाती है, इसे Node.js जैसे कई गैर-ब्राउज़र वातावरण भी इस्तेमाल करते हैं। इस भाषा पर सक्रिय रूप से काम हो रहा है; और अपने मल्टी-पैराडाइम गुण के कारण यह प्रोग्रामिंग के कई तरीकों की सुविधा देती है। JavaScript एक डायनैमिक भाषा है, जो ऑब्जेक्ट-ओरिएंटेड, इम्परेटिव और डिक्लेरेटिव (जैसे फंक्शनल प्रोग्रामिंग) शैलियों का समर्थन करती है।

(दोबारा) असाइनमेंट

JavaScript में नामों को वैल्यू असाइन करने के कुछ मुख्य तरीके हैं: वेरिएबल या कॉन्स्टेंट इस्तेमाल करना। Exercism पर वेरिएबल हमेशा camelCase में लिखे जाते हैं और कॉन्स्टेंट SCREAMING_SNAKE_CASE में। इसके लिए पालन करने योग्य कोई आधिकारिक गाइड नहीं है, और अलग-अलग कंपनियों और संगठनों के स्टाइल गाइड अलग-अलग होते हैं। वेरिएबल आप जैसे चाहें वैसे लिख सकते हैं। उन्हें उसी तरह लिखने का फायदा, जैसे अभ्यासों में तैयार किया गया है, यह है कि वेब इंटरफ़ेस और ज़्यादातर IDE में वे अलग तरह से हाइलाइट होते हैं।

JavaScript में वेरिएबल const, let या var कीवर्ड से परिभाषित किए जा सकते हैं।

let या var इस्तेमाल करते समय एक वेरिएबल अपने जीवनकाल में अलग-अलग वैल्यू दर्शा सकता है। उदाहरण के लिए, myFirstVariable को असाइनमेंट ऑपरेटर = से कई बार परिभाषित और फिर से परिभाषित किया जा सकता है:

let myFirstVariable = 1;
myFirstVariable = 'Some string';
myFirstVariable = new SomeComplexClass();

let और var के विपरीत, const से परिभाषित वेरिएबल को सिर्फ एक बार ही असाइन किया जा सकता है। JavaScript में कॉन्स्टेंट परिभाषित करने के लिए इसी का इस्तेमाल होता है।

const MY_FIRST_CONSTANT = 10;

// Can not be re-assigned.
MY_FIRST_CONSTANT = 20;
// => TypeError: Assignment to constant variable.

कॉन्स्टेंट असाइनमेंट

const कीवर्ड का उल्लेख वेरिएबल और कॉन्स्टेंट, दोनों के लिए होता है। कॉन्स्टेंट के आसपास अक्सर जिस दूसरे कॉन्सेप्ट का उल्लेख होता है, वह है (अ-)परिवर्तनशीलता।

const कीवर्ड सिर्फ बाइंडिंग को अपरिवर्तनीय बनाता है, यानी आप एक const वेरिएबल को सिर्फ एक बार ही वैल्यू असाइन कर सकते हैं। JavaScript में सिर्फ प्रिमिटिव वैल्यू ही अपरिवर्तनीय होती हैं। लेकिन गैर-प्रिमिटिव वैल्यू को फिर भी बदला जा सकता है।

const MY_MUTABLE_VALUE_CONSTANT = { food: 'apple' };

// This is possible
MY_MUTABLE_VALUE_CONSTANT.food = 'pear';

MY_MUTABLE_VALUE_CONSTANT;
// => { food: "pear" }

कॉन्स्टेंट वैल्यू (अपरिवर्तनीयता)

एक नियम के तौर पर, Exercism पर, और कई अन्य संगठनों और प्रोजेक्ट स्टाइल गाइड में, ऐसी वैल्यू को न बदलें जो const SCREAMING_SNAKE_CASE जैसी दिखती हैं। तकनीकी रूप से वैल्यू को बदला जा सकता है, लेकिन स्पष्टता बनाए रखने और Exercism पर अपेक्षाएँ तय रखने के लिए ऐसा करने की सलाह नहीं दी जाती। जब इसे लागू करना ज़रूरी हो, तो Object.freeze(value) इस्तेमाल कीजिए।

const MY_VALUE_CONSTANT = Object.freeze({ food: 'apple' });

// This silently fails
MY_VALUE_CONSTANT.food = 'pear';

MY_VALUE_CONSTANT;
// => { food: "apple" }

व्यवहार में किसी कोडबेस में हर जगह Object.freeze दिखना शायद ही होता है, लेकिन SCREAMING_SNAKE_CASE वैल्यू को कभी न बदलने का नियम अच्छा नियम है; इसे अक्सर लिंटर जैसे स्वचालित विश्लेषण से लागू कराया जाता है।

फंक्शन घोषणाएँ

JavaScript में कार्यक्षमता की इकाइयाँ फंक्शन में समाहित होती हैं, और अगर फंक्शन एक-दूसरे से जुड़े हों तो उन्हें आम तौर पर एक ही फाइल में साथ रखा जाता है। ये फंक्शन पैरामीटर (आर्गुमेंट) ले सकते हैं, और return कीवर्ड से एक वैल्यू लौटा सकते हैं। फंक्शन () सिंटैक्स से कॉल किए जाते हैं।

function add(num1, num2) {
  return num1 + num2;
}

add(1, 3);
// => 4

💡 JavaScript में फंक्शन घोषित करने के कई अलग-अलग तरीके हैं। ये दूसरे तरीके function कीवर्ड इस्तेमाल करने से अलग दिखते हैं। यह ट्रैक इन्हें धीरे-धीरे पेश करने की कोशिश करता है, लेकिन अगर आप इन्हें पहले से जानते हैं, तो इनमें से कोई भी इस्तेमाल कर सकते हैं। ज़्यादातर मामलों में, एक या दूसरे का इस्तेमाल करना बेहतर या खराब नहीं होता।

एक्सपोर्ट और इम्पोर्ट

export और import कीवर्ड ऐसे शक्तिशाली टूल हैं जो एक साधारण JavaScript फाइल को JavaScript मॉड्यूल बना देते हैं। ये कोड को फंक्शन, क्लास, वेरिएबल और कॉन्स्टेंट जैसे कंपोनेंट चुन-चुनकर बाहर दिखाने की सुविधा देने के अलावा, कई और फीचर भी चालू करते हैं, जैसे:

इसका एक ठोस उदाहरण यह है कि Exercism के JavaScript ट्रैक पर टेस्ट कैसे काम करते हैं। हर अभ्यास में कम से कम एक इम्प्लीमेंटेशन फाइल होती है, जैसे lasagna.js, और हर अभ्यास में कम से कम एक टेस्ट फाइल होती है, जैसे lasagna.spec.js। इम्प्लीमेंटेशन फाइल export से पब्लिक API बाहर दिखाती है और टेस्ट फाइल import से उन तक पहुँचती है, और इसी तरह वह इम्प्लीमेंटेशन के नतीजों की जाँच कर पाती है।

// file.js
export const MY_VALUE = 10;

export function add(num1, num2) {
  return num1 + num2;
}

// file.spec.js
import { MY_VALUE, add } from './file';

add(MY_VALUE, 5);
// => 15
GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

मूल बातें सीखिए