जवाबों:
ES6 में, import
s निर्यात-मूल्यों पर लाइव केवल-पढ़ने के विचार हैं। परिणामस्वरूप, जब आप ऐसा करते हैं import a from "somemodule";
, तो a
आप a
मॉड्यूल में किसी भी तरह की घोषणा नहीं कर सकते ।
हालाँकि, चूंकि आयातित चर लाइव दृश्य हैं, इसलिए वे निर्यात में "कच्चे" निर्यात चर के अनुसार बदलते हैं। निम्नलिखित कोड पर विचार करें (नीचे संदर्भ लेख से उधार लिया गया है):
//------ lib.js ------
export let counter = 3;
export function incCounter() {
counter++;
}
//------ main1.js ------
import { counter, incCounter } from './lib';
// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4
// The imported value can’t be changed
counter++; // TypeError
जैसा कि आप देख सकते हैं, अंतर वास्तव में निहित है lib.js
, नहीं main1.js
।
संक्षेप में:
import
मॉड्यूल में संबंधित चर घोषित करने से कोई फर्क नहीं पड़ता, आप -ed चर को असाइन नहीं कर सकते ।let
-vs- const
शब्दार्थ मॉड्यूल में घोषित चर पर लागू होता है।
const
, तो इसे कहीं भी पुन: असाइन या रिबाउंड नहीं किया जा सकता है।let
, तो इसे केवल मॉड्यूल में पुन: असाइन किया जा सकता है (लेकिन उपयोगकर्ता नहीं)। यदि इसे बदल दिया जाता है, तो import
-ed चर इसके अनुसार बदल जाता है।
export
यहां कीवर्ड विवरण । वर्तमान में यह किसी भी वेब-ब्राउज़र द्वारा मूल रूप से समर्थित नहीं है।