[javascript] जावास्क्रिप्ट में ब्लॉक-स्कोप्ड वैरिएबल घोषणाओं के लिए 'चलो' नाम क्यों चुना गया था?


Answers

मुझे लगता है कि यह गणितीय परंपरा का पालन करता है। गणित में, अक्सर यह कहा जाता है कि "एक्स को मनमाना वास्तविक संख्या दें" या ऐसा ही।

Question

मैं समझता हूं कि var उस नाम को क्यों लेता है - यह परिवर्तनीय है, const - यह स्थिर है, लेकिन नाम के पीछे क्या अर्थ है, जो वर्तमान ब्लॉक को स्कॉप्स करता है? होने दो?




एक्सबुक की प्रतिक्रिया में जोड़कर , कीवर्ड का गणित उपयोग जावास्क्रिप्ट / ईएस 6 में उपयोग किए let दौरान स्कोपिंग प्रभावों को अच्छी तरह से समाहित करता है। विशेष रूप से, जैसा कि निम्न ES6 कोड toPrint ब्रेसिज़ में असाइनमेंट को अनदेखा करता है और 'Hello World' के मान को प्रिंट करता है:

let toPrint = 'Hello World.';
{
    let toPrint = 'Goodbye World.';
}
console.log(toPrint); // Prints 'Hello World'

औपचारिक गणित (विशेष रूप से सबूत के लेखन) में उपयोग किए जाने से संकेत मिलता है कि एक चर का वर्तमान उदाहरण केवल उस तार्किक विचार के दायरे के लिए मौजूद है। निम्नलिखित उदाहरण में, एक्स को नए विचार को दर्ज करने पर तुरंत एक नई पहचान प्राप्त होती है (आमतौर पर ये मुख्य विचार साबित करने के लिए आवश्यक अवधारणाएं हैं) और सब-सबूत के समापन पर तुरंत पुराने x पर वापस आती हैं। बेशक, कोडिंग के रूप में, इसे कुछ हद तक भ्रमित माना जाता है और इसलिए आमतौर पर अन्य चर के लिए एक अलग नाम चुनकर टाला जाता है।

चलो एक्स और इतने ...

सबूत सामान

नया विचार {चलो कुछ और हो ... कुछ साबित करें} नया विचार निष्कर्ष निकालें

पुराने एक्स के साथ मुख्य विचार साबित करें




घोषित वैरिएबल को उनके दायरे को ब्लॉक के रूप में परिभाषित किया गया है, साथ ही किसी भी निहित उप-ब्लॉक में। इस तरह, var var की तरह काम करता है। मुख्य अंतर यह है कि एक var चर का दायरा पूरे संलग्न कार्य है। नीचे कुछ उदाहरण देखें।

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // same variable!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // different variable
    console.log(x);  // 2
  }
  console.log(x);  // 1
}



Related