paint-brush
সাধারণ মানুষের জন্য একটি শূন্য কোলেসিং (জেএস-এ) টিউটোরিয়ালদ্বারা@rahull
792 পড়া
792 পড়া

সাধারণ মানুষের জন্য একটি শূন্য কোলেসিং (জেএস-এ) টিউটোরিয়াল

দ্বারা Rahul7m2023/06/24
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

নালিশ কোলেসিং অপারেটর (??) হল একটি সংক্ষিপ্ত, সহজ উপায় যা একটি ডিফল্ট মান প্রদান করার জন্য যখন কিছু নাল বা অনির্ধারিত থাকে। অগোছালো নেস্টেড টারনারি বা লজিক্যাল বা বিবৃতি থাকার পরিবর্তে, আপনি একটি ডিফল্টে একত্রিত করতে ডবল প্রশ্ন চিহ্ন অপারেটর ব্যবহার করতে পারেন। দ্য?? অপারেটর বাম দিকে ফিরিয়ে দেবে যদি এটি শূন্য না হয় (অর্থাৎ নাল ওরিফাইন্ড), অন্যথায় এটি ডান দিকে ফিরে আসবে।
featured image - সাধারণ মানুষের জন্য একটি শূন্য কোলেসিং (জেএস-এ) টিউটোরিয়াল
Rahul HackerNoon profile picture

এই যে! আপনি কি কখনও আপনার জাভাস্ক্রিপ্ট কোডে নাল বা অনির্ধারিত মানগুলি পরিচালনা করার চেষ্টা করে হতাশ হয়েছেন? নালিশ কোলেসিং একটি নতুন বৈশিষ্ট্য যা এটিকে সম্পূর্ণরূপে সহজ করতে সহায়তা করে। এই পোস্টে, আমরা nullish coalescing ব্যাখ্যা করব।


এর মানে সহজ শর্তাবলী, মজার উদাহরণ এবং কোন জটিল শব্দার্থ নেই। শেষ পর্যন্ত, আপনি কিছুক্ষণের মধ্যে পরিষ্কার, সংক্ষিপ্ত JS কোড লিখবেন।


তাই ঠিক কি nullish coalescing? মূলত, এটি একটি সংক্ষিপ্ত, সহজ উপায় একটি ডিফল্ট মান প্রদান করার যখন কিছু নাল বা অনির্ধারিত হয়। অগোছালো নেস্টেড টারনারিজ বা লজিক্যাল বা বিবৃতি থাকার পরিবর্তে, আপনি একটি ডিফল্টে একত্রিত করতে ডবল প্রশ্ন চিহ্ন অপারেটর (??) ব্যবহার করতে পারেন।


বিভ্রান্তিকর শব্দ? চিন্তা করবেন না, আমরা আপনাকে দেখাব কিভাবে এটি কিছু সহজ-অনুসরণযোগ্য উদাহরণ দিয়ে কাজ করে। বাকল আপ, এটি একটি মজার যাত্রা হতে চলেছে!

নালিশ কোলেসিং অপারেটর ঠিক কি??

আপনি কি কখনও জাভাস্ক্রিপ্টে নাল মান নিয়ে কাজ করতে গিয়ে আটকে গেছেন? আমি জানি আমার আছে. ওয়েল, আমার বন্ধু, আমি আপনাকে শূন্য কোলেসিং অপারেটরের সাথে পরিচয় করিয়ে দিই (??)। এই ছোট্ট লোকটি আপনার জীবনকে অনেক সহজ করে তুলবে।


তাই ঠিক কি nullish coalescing অপারেটর? মূলত, এটি একটি শর্টকাট একটি ডিফল্ট মান প্রদান করার জন্য যখন কিছু নাল বা অনির্ধারিত হতে পারে। লেখার পরিবর্তে:


 let name = obj.name || 'default name';


আপনি এখন সহজভাবে লিখতে পারেন:


 let name = obj.name ?? 'default name';


দ্য ?? অপারেটর বাম দিকে ফিরিয়ে দেবে যদি এটি শূন্য না হয় (অর্থাৎ নাল বা অনির্ধারিত), অন্যথায়, এটি ডান দিকে ফিরে আসবে। সুতরাং উপরের উদাহরণে, যদি obj.name নাল বা অনির্ধারিত না হয়, তাহলে নামটি obj.name এ সেট করা হবে। কিন্তু যদি obj.name নাল বা অনির্ধারিত হয়, নাম হবে 'ডিফল্ট নাম'।


বেশ সহজ, তাই না? আরও কিছু উদাহরণ:


 let age = ageInput ?? 25; // Sets age to ageInput if not nullish, otherwise 25 let email = user.email ?? 'no email provided'; let hobbies = obj.hobbies ?? []; // Sets hobbies to obj.hobbies if not nullish, otherwise an empty array

আমি আশা করি এটি জাভাস্ক্রিপ্টে আপনার কিছু শর্তযুক্ত যুক্তিকে সহজ করতে সাহায্য করবে।

একটি বাস্তব-বিশ্বের উদাহরণ যা আমরা সকলেই সম্পর্কযুক্ত করতে পারি

আপনি কি কখনও কিছুর জন্য অর্থ প্রদান করতে গেছেন, শুধুমাত্র বুঝতে পেরেছেন যে আপনার কাছে কয়েক টাকা কম? আমরা সবাই সেখানে ছিলাম. নালিশ কোলেসিং হল আপনার পকেটে কিছু অতিরিক্ত ডলার খোঁজার মত যাতে আপনি যা কিনতে চান তা সত্যিই সামর্থ্য রাখতে পারেন।


ধরা যাক আপনি আপনার স্বাভাবিক সকালের পানীয়ের জন্য আপনার প্রিয় কফি শপের দিকে যাচ্ছেন। আপনি আপনার হাতে $3 নিয়ে কাউন্টারে যান, অর্ডার করার জন্য প্রস্তুত। কিন্তু যখন বারিস্তা আপনাকে আপনার মোট কথা বলে, তখন ট্যাক্সের পরে তা $3.50 হয়ে যায়।


নালিশ কোলেসিং হঠাত্ মনে করার মতো যে আপনার পকেটে আরও একটি ডলার আছে, তাই আপনি এখনও আপনার কফি পেতে পারেন। উফফ!


JavaScript-এ, nullish coalescing হল একটি ডিফল্ট মান প্রদান করার একটি উপায় যদি কোনো কিছু নাল বা অনির্ধারিত হয়ে যায়। উদাহরণস্বরূপ, বলুন আপনার একটি ফাংশন আছে যা একটি মান ফেরত দিতে পারে বা নাও পারে:

 function getCoffeePrice() { // Returns $3.50 or undefined } let price = getCoffeePrice() ?? '$3.50';


এখানে, যদি getCoffeePrice() অনির্ধারিত রিটার্ন করে, price হবে '$3.50' ডিফল্টভাবে ধন্যবাদ ?? শূন্য কোলেসিং অপারেটর। তাই আপনি আপনার কফির জন্য যেকোন ভাবেই মূল্য পাবেন নিশ্চিত।


ভেরিয়েবল নাল বা অসংজ্ঞায়িত হলে নালিশ কোলেসিং ফলব্যাক ডিফল্ট মান প্রদান করে আপনার কোডকে আরও স্থিতিস্থাপক হতে দেয়। কফি শপে আপনার পকেটে সেই অতিরিক্ত ডলার খুঁজে পাওয়ার মতোই, এটি নিশ্চিত করে যে আপনার লেনদেন সম্পূর্ণ করার জন্য যা প্রয়োজন তা আপনার কাছে আছে। বেশ সহজ, তাই না?


এখন আপনি একজন পেশাদারের মতো শূন্য কোলেসিং বুঝতে পেরে বিশ্রাম নিতে পারেন। খুশি কোডিং এবং আপনার কফি উপভোগ করুন!

জাভাস্ক্রিপ্টে Nullish Coalescing ব্যবহার করা

নালিশ কোলেসিং অপারেটর (??) তার বাম অপারেন্ড ফেরত দেয় যদি এটি শূন্য না হয়; অন্যথায়, এটি তার সঠিক অপারেন্ড প্রদান করে।


বিভ্রান্ত? এর যে ভেঙ্গে দেওয়া যাক. একটি "শূন্য" মান হয় নাল বা অনির্ধারিত। তাই ?? অপারেটর চেক করে যে বাম মান শূন্য কিনা, এবং যদি তাই হয়, তার পরিবর্তে সঠিক মান প্রদান করে।


উদাহরণ স্বরূপ:

 const name = bob ?? 'anonymous';


বব সংজ্ঞায়িত হলে এটি 'বব'-এ নামের মান নির্ধারণ করবে। যদি বব অনির্ধারিত বা শূন্য হয়, তবে এটি পরিবর্তে 'বেনামী' স্ট্রিং নির্ধারণ করবে।

কেন এই দরকারী?

ছাড়া ?? অপারেটর, আপনাকে এটি করতে হবে:

 const name = bob !== null && bob !== undefined ? bob : 'anonymous';


দ্য ?? অপারেটর আমাদের একটি সংক্ষিপ্ত, ক্লিনার সিনট্যাক্স দেয় মূলত একই জিনিসটি করতে।


এটি জাভাস্ক্রিপ্টের যেকোনো জায়গায় ব্যবহার করা যেতে পারে - ভেরিয়েবল , ফাংশন আর্গুমেন্ট , অবজেক্ট প্রপার্টি ইত্যাদিতে। যে কোনো জায়গায় আপনি সাধারণত || (বা) ডিফল্ট মানগুলির জন্য অপারেটর, আপনি এখন ব্যবহার করতে পারেন ?? একটি "শূন্য" ডিফল্ট মানের জন্য।

কয়েকটি উদাহরণ:

 const foo = null ?? 'default string'; // foo is 'default string' const bar = 0 ?? 42; // bar is 0 const qux = 0 || 42; // qux is 42 - || returns first truthy value function doSomething(x = 0) { x = x ?? 10; // If x is nullish, set default of 10 console.log(x); } doSomething(null); // Prints 10 doSomething(5); // Prints 5

আমি আশা করি এটি শূন্য কোলেসিং অপারেটরকে ব্যাখ্যা করতে সাহায্য করবে!

কেন নালিশ কোলেসিং বা এর চেয়ে ভাল (||)

OR (||) অপারেটর প্রথম সত্য মান ফিরিয়ে দেবে।

OR (||) অপারেটর তার সম্মুখীন প্রথম সত্য মান ফিরিয়ে দিয়ে কাজ করে। উভয় মান মিথ্যা হলে, এটি শেষ মান প্রদান করবে। উদাহরণ স্বরূপ:


 let name = null; let user = name || 'John'; // user is 'John'

এখানে, name নাল (মিথ্যা), তাই user দ্বিতীয় মান পায়, 'জন'।

নুলিশ কোলেসিং অপারেটর (??) আরও স্মার্ট।

নুলিশ কোলেসিং অপারেটর (??) ES2020 এ চালু করা হয়েছিল এবং এটি OR (||) এর চেয়ে কিছুটা স্মার্ট। এটি প্রথম সংজ্ঞায়িত মান প্রদান করবে (নাল/অনির্ধারিত নয়)। তাই যদি প্রথম মানটি একটি খালি স্ট্রিং, 0, বা মিথ্যা হয় তবে এটি সেই মানটি ফেরত দেবে। উদাহরণ স্বরূপ:


 let name = ''; let user = name ?? 'John'; // user is ''


এখানে, name একটি খালি স্ট্রিং, তাই user name পায় (প্রথম সংজ্ঞায়িত মান)।


নুলিশ কোলেসিং অপারেটর আমাদেরকে একটি পরিষ্কার উপায়ে ডিফল্ট মান প্রদান করতে দেয়। আমরা শূন্য/অনির্ধারিত মানগুলির জন্য 0, খালি স্ট্রিং, মিথ্যা ইত্যাদির মতো মিথ্যা মানগুলি নিয়ে চিন্তা না করেই ডিফল্ট মান সেট করতে পারি।


উদাহরণস্বরূপ, বলুন আমাদের একটি ফাংশন আছে যা ব্যবহারকারীর বয়স ফেরত দেয়, কিন্তু কখনও কখনও বয়সটি শূন্য থাকে:

 function getAge() { return age; // could be null } let userAge = getAge() || 30; // Uses OR, not ideal


এখানে, age 0, '', বা মিথ্যা হলে, userAge ভুলভাবে 30 হবে।


নালিশ কোলেসিং অপারেটর ব্যবহার করে এটি ঠিক করে:


 let userAge = getAge() ?? 30; // Uses ??


এখন, age শূন্য বা অনির্ধারিত হলেই userAge বয়স 30 হবে। অন্য যেকোন মিথ্যা মান যেমন 0 ব্যবহার করা হবে।

সুতরাং সংক্ষেপে, OR (||) এর পরিবর্তে Nullish Coalescing Operator (??) ব্যবহার করুন যখন আপনি null/undefined-এর জন্য একটি ডিফল্ট মান প্রদান করতে চান, কিন্তু 0, খালি স্ট্রিং বা মিথ্যার মতো মিথ্যা মানগুলির জন্য নয়।


আপনার কোড পরিষ্কার এবং কম বাগ প্রবণ হবে!

নালিশ কোলেসিং সম্পর্কে সাধারণ প্রশ্ন

সুতরাং আপনি জাভাস্ক্রিপ্টে এই অভিনব নতুন নুলিশ কোলেসিং অপারেটর (??) সম্পর্কে শুনেছেন এবং কিছু প্রশ্ন আছে। কোন চিন্তা নেই, আমি আপনাকে আচ্ছাদিত করেছি!

নালিশ কোলেসিং কি ধরনের ডেটার সাথে কাজ করে?

  • নালিশ কোলেসিং জাভাস্ক্রিপ্টের যেকোনো ডেটা টাইপের সাথে কাজ করে, যার মধ্যে রয়েছে:
  • সংখ্যা: 0 ?? 1 // রিটার্ন 1
  • স্ট্রিংস: ''?? 'হ্যালো' // 'হ্যালো' ফেরত দেয়
  • বুলিয়ানস: মিথ্যা ?? সত্য // সত্য ফেরত দেয়
  • বস্তু: {} ?? {নাম: 'জন'} // ফেরত দেয় {নাম: 'জন'}
  • অ্যারে: [] ?? [১, ২, ৩] // রিটার্ন [১, ২, ৩]
  • এবং আরো!

এর মধ্যে পার্থক্য কি || (অথবা এবং ?? (Nulllish Coalescing) অপারেটর?

দ || (বা) অপারেটর ডান অপারেন্ডটি ফেরত দেবে যদি বাম অপারেন্ডটি মিথ্যা হয় (false, 0, খালি স্ট্রিং, null, undefined, NaN)।


দ্য ?? (Nullish Coalescing) অপারেটর শুধুমাত্র ডান অপারেন্ডটি ফেরত দেবে যদি বাম অপারেন্ডটি নাল বা অনির্ধারিত হয়।


তাহলে কি পার্থক্য হল?? 0 এবং খালি স্ট্রিংগুলিকে বৈধ মান হিসাবে বিবেচনা করে, যেখানে || না.

আমি কখন ব্যবহার করব?? ওভার ||?

ব্যবহার ?? যখন আপনি নাল বা অনির্ধারিত জন্য একটি ডিফল্ট মান প্রদান করতে চান, কিন্তু 0 এবং খালি স্ট্রিংগুলিকে বৈধ মান হিসাবে বিবেচনা করুন।


ব্যবহার করুন || যখন আপনি কোনো "মিথ্যা" মানের জন্য একটি ফলব্যাক প্রদান করতে চান।


আশা করি এটি নালিশ কোলেসিং অপারেটর সম্পর্কে আপনার কিছু জ্বলন্ত প্রশ্নগুলি পরিষ্কার করতে সহায়তা করবে! অাপনার যদি অারো কোন প্রশ্ন থাকে তাহলে অামাকে জানান।

উপসংহার

এখন আপনি nullish coalescing এবং জাভাস্ক্রিপ্টে এটি কিভাবে কাজ করে সে সম্পর্কে সবই জানেন। বেশ সহজ, তাই না? এই ছোট্ট অপারেটরটি আপনার সময় বাঁচাতে পারে এবং সংক্ষিপ্ত উপায়ে ডিফল্ট মান প্রদান করে আপনার কোড ক্লিনার করতে পারে।


সুতরাং এগিয়ে যান এবং আপনার হৃদয়ের বিষয়বস্তুতে শূন্য মানগুলিকে একত্রিত করুন! আপনি আধুনিক জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলি আয়ত্ত করার পথে ভাল আছেন৷


শুভ কোডিং!