तो मैं इसयदि कोई स्थिति किसी स्थिति में परिभाषित की गई है तो क्या कोई फ़ंक्शन उड़ाया जाता है?
var x = 1;
if (function f(){}) {
x += typeof f;
}
x;
यह "1undefined" outputs की तरह कुछ है लगता है। मैंने सोचा कि इसमें आउटपुट "1 फ़ंक्शन" होना चाहिए, क्योंकि फ़ंक्शन f() {} को उपरोक्त से ऊपर रखा जाना चाहिए था। यह स्पष्ट रूप से मामला नहीं है - क्यों? मैंने सोचा कि कार्य घोषणाएं और निकायों को हमेशा दायरे के शीर्ष पर फेंक दिया गया था?
वास्तव में, यह है, देखें: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function – heartyporridge
मुझे लगता है कि यह एक नामांकित फ़ंक्शन अभिव्यक्ति है, फ़ंक्शन घोषणा नहीं है। नाम का दायरा केवल कार्य के शरीर को परिभाषित किया जा रहा है, आसपास के कार्य नहीं। – Barmar
यह 'var foo = function f() {};' जैसा है। – Barmar