javascript - programs - जावास्क्रिप्ट डाउनलोड




जावास्क्रिप्ट उत्थापन स्पष्टीकरण (2)

अर्धविराम के बजाय लाइन-ब्रेक का उपयोग किया जा सकता है।

यह :

var a = 0;
function b(){
    a = 10;
    return // line-break
    function a(){};
}
b();
console.log(a);  // => 0

इसका मतलब है :

var a = 0;
function b(){
    a = 10;
    return; // <-- 'adds this semicolon'
    function a(){};
}
b();
console.log(a);  // => 0

यदि आपको इस लाइन-ब्रेक की आवश्यकता है , तो आप इस तरह कर सकते हैं :

var a = 0;
function b(){
    a = 10;
    return (
        function a(){}
    )
}
b();
console.log(a);

नीचे के स्निपेट्स के बीच अंतर क्या है?

var a = 0;
function b(){
    a = 10;
    return function a(){};
}
b();
console.log(a);  // => 10

तथा

var a = 0;
function b(){
    a = 10;
    return
    function a(){};
}
b();
console.log(a);  // => 0

यह जावास्क्रिप्ट उत्थापन के साथ कुछ करना है, लेकिन अवधारणा के बारे में मेरी समझ बिल्कुल विपरीत आउटपुट देती है।


return
function a() {}

वैसा ही है

return;
function a() {}

स्वचालित अर्धविराम सम्मिलन के बाद। दूसरे मामले में, फ़ंक्शन को इसके दायरे के शीर्ष पर ले जाया जाता है। कोड समान है

var a = 0;

function b() {
  function a() {};
  a = 10;
  return;
}
b();
console.log(a);

जैसा कि अंदर b() आंतरिक फ़ंक्शन है और फिर ओवरराइड किया जाता है, यह b() बाहर से पहुंच योग्य नहीं है b()

यहाँ यह समझने के लिए डेमो है कि उत्थापन कैसे कार्य करता है।

var a = 0;

function b() {
  console.log(a); // function
  a = 10;
  console.log(a); // 10
  return

  function a() {};
}
console.log(b()); // undefined
console.log(a);








javascript