के साथ एक स्थिर अंदर कोशिश/पकड़ को परिभाषित करें आज मैं एक अजीब जेएस बग में चलाता हूं, const
के साथ एक कोशिश/पकड़ ब्लॉक के अंदर काम करता हूं, और मैं बेहतर समझना चाहता हूं कि इसका कारण क्या है।जावास्क्रिप्ट: सख्त मोड
try {
const FOO = 'bar';
console.log('inside:', FOO);
} catch (e) {}
console.log('outside:', FOO);
यह प्रवेश करेंगे:
inside: bar
outside: bar
हम करने के लिए "सख्त मोड" स्विच करते हैं, हालांकि:
एक कोड उदाहरण कोआइए नज़र, कि अधिक से अधिक एक हजार शब्दों के बराबर है
'use strict';
try {
const FOO = 'bar';
console.log('inside:', FOO);
} catch (e) {}
console.log('outside:', FOO);
अब एक ही कोड त्रुटि उत्पन्न करता है:
ReferenceError: FOO is not defined
अगर हम बदलने हालांकि const
var
साथ:
'use strict';
try {
var foo = 'bar';
console.log('inside:', foo);
} catch (e) {}
console.log('outside:', foo);
तो यह सब फिर से ठीक काम करता है, यहां तक कि "सख्त मोड" में:
inside: bar
outside: bar
किसी को भी कृपया मुझे समझने में मदद कर सकते हैं क्यों const
असाइनमेंट "सख्त मोड" में एक कोशिश/पकड़ ब्लॉक के अंदर काम नहीं कर रहा है?
धन्यवाद!
'साथ let', नहीं' var' –