জাভাস্ক্রিপ্ট ES6 রফতানি বনাম বনাম রফতানি দিন


149

ধরা যাক আমার একটি পরিবর্তনশীল রয়েছে যা আমি রফতানি করতে চাই। এর মধ্যে পার্থক্য কী

export const a = 1;

বনাম

export let a = 1;

আমি মধ্যে পার্থক্য বুঝতে constএবং let, কিন্তু যখন আপনি তাদের রপ্তানি, পার্থক্য কি কি?


exportকীওয়ার্ডের বিশদ এখানে । বর্তমানে এটি কোনও ওয়েব-ব্রাউজারের দ্বারা স্থানীয়ভাবে সমর্থিত নয়।
আরবিটি

উত্তর:


247

ES6- importএ রফতানি হওয়া মানগুলিতে সরাসরি পঠনযোগ্য দর্শন। ফলস্বরূপ, আপনি যখন করবেন import a from "somemodule";, আপনি মডিউলটিতে aকীভাবে ঘোষণা করবেন তা নির্ধারণ করা যাবে না a

তবে, যেহেতু আমদানিকৃত ভেরিয়েবলগুলি লাইভ দর্শন, তাই তারা রফতানিতে "কাঁচা" রফতানি পরিবর্তনশীল অনুযায়ী পরিবর্তন করে change নিম্নলিখিত কোড বিবেচনা করুন (নীচের রেফারেন্স নিবন্ধ থেকে ধার করা):

//------ 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মডিউলে সম্পর্কিত ভেরিয়েবলগুলি কীভাবে ঘোষণা করবেন তা বিবেচনা ছাড়াই আপনি বিড ভেরিয়েবলগুলি বরাদ্দ করতে পারবেন না ।
  • প্রথাগত let-vs- constশব্দার্থবিজ্ঞান মডিউলটিতে ঘোষিত ভেরিয়েবলের জন্য প্রযোজ্য।
    • যদি ভেরিয়েবলটি ঘোষিত হয় তবে constএটিকে কোথাও পুনরায় সাইন করা বা রিবাউন্ড করা যাবে না।
    • যদি ভেরিয়েবলটি ঘোষিত হয় তবে letএটি কেবল মডিউলে পুনর্নির্দিষ্ট করা যাবে (তবে ব্যবহারকারী নয়)। যদি এটি পরিবর্তন করা হয় তবে import-ed পরিবর্তনশীল সেই অনুযায়ী পরিবর্তন হয়।

তথ্যসূত্র: http://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports-are-live-read-only-views-on-ported-values


2

আমি মনে করি আপনি একবার এটি আমদানি করার পরে, আচরণটি একই রকম হয় (জায়গায় আপনার পরিবর্তনশীল উত্স ফাইলের বাইরে ব্যবহার করা হবে)।

পার্থক্যটি কেবল তখনই হবে যদি আপনি খুব ফাইল শেষ হওয়ার আগে এটি পুনরায় নিয়োগের চেষ্টা করেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.