मुझे यकीन नहीं है कि ऐसा क्यों लगता है कि ऐसा लगता है कि मैं let
या const
चर नहीं कह सकता अगर मैं उन्हें if/else
कथन में घोषित करता हूं।if/else के बाद उपयोग करने के लिए `let` या 'const` घोषित करने के लिए अन्यथा उपयोग करें?
if (withBorder) {
const classes = `${styles.circularBorder} ${styles.dimensions} ${styles.circularPadding} row flex-items-xs-middle flex-items-xs-center`;
} else {
const classes = `${styles.dimensions} ${styles.circularPadding} row flex-items-xs-middle flex-items-xs-center`;
}
return (
<div className={classes}>
{renderedResult}
</div>
);
यदि मैं इस कोड का उपयोग करता हूं तो यह कहता है कि classes is not defined
।
लेकिन अगर मैं const
var
को कक्षाओं परिभाषित किया गया है बदल लेकिन मैं एक चेतावनी मिलती है के बारे में classes used outside of binding context
और all var declarations must be at the top of the function scope
मैं इसे ठीक कर सकता है कैसे?
'let' और' const' को 'if' और' for' जैसे नियंत्रण विवरणों के अंदर स्कॉप्ड करने के लिए डिज़ाइन किया गया है। यदि आप 'let' का उपयोग करना चाहते हैं तो आपको' if' से पहले चर को परिभाषित करने की आवश्यकता है और इसे केवल अंदर असाइन करें। – UnholySheep
जो कि अधिकांश प्रोग्रामिंग भाषाओं में अपेक्षित है। पुरानी जावास्क्रिप्ट अभी भी आपको इससे दूर जाने देगी। हालांकि, यदि यह स्थिर है, तो मान को एक बार असाइन किया जाना चाहिए और कभी नहीं बदला जाना चाहिए ... इसे ब्लॉक के बाहर 'let' के रूप में घोषित करें और इसे/अन्य ब्लॉक के अंदर सेट करें। – ps2goat
क्यों न केवल * var * का उपयोग करें? – RobG