জাভাস্ক্রিপ্টে নালিশ কোয়ালেসিং অপারেটর
এই প্রবন্ধে জাভাস্ক্রিপ্টে নালিশ কোয়ালেসিং অপারেটর ব্যাখ্যা করা হয়েছে।
YouTube Video
জাভাস্ক্রিপ্টে নালিশ কোয়ালেসিং অপারেটর
জাভাস্ক্রিপ্টে, নালিশ কোয়ালেসিং অপারেটর (??) নির্ধারণ করে একটি মান null বা undefined কিনা এবং সেক্ষেত্রে একটি আলাদা ডিফল্ট মান প্রদান করে। এটি সাধারণত ব্যবহৃত লজিক্যাল OR অপারেটর (||) এর অনুরূপ, তবে এটি null এবং undefined এর ক্ষেত্রে বিশেষায়িত হওয়ায় একে ভিন্ন করে তোলে।
লজিক্যাল OR অপারেটর বাম-পাশের মান falsy হলে ডান-পাশের মান প্রদান করে, যেখানে nullish coalescing অপারেটর শুধুমাত্র তখনই ডান-পাশের মান প্রদান করে যখন বাম-পাশের মান null বা undefined হয়। এই বৈশিষ্ট্যটি 0 এবং ফাঁকা স্ট্রিং ("") এর মতো মানগুলির সঠিক পরিচালনা নিশ্চিত করে।
মূল সিনট্যাক্স
1let result = value ?? defaultValue;valueসেই মান যা পরীক্ষা করা হচ্ছে।defaultValueসেই মান যা প্রদান করা হয় যখনvaluenullবাundefined।
নালিশ কোয়ালেসিং অপারেটর ব্যবহারের উদাহরণ।
নিচের উদাহরণে একটি প্রক্রিয়া কার্যকর করা হয়েছে, যেখানে null বা undefined হলে একটি ডিফল্ট মান ফেরত দেওয়া হবে।
1let name = null;
2let defaultName = "Anonymous";
3
4// If name is null or undefined, 'Anonymous' is returned
5let displayName = name ?? defaultName;
6console.log(displayName); // "Anonymous"
এই কোডে, যেহেতু name এর মান null, তাই defaultName এর মান "Anonymous" প্রদান করা হয়েছে। যদি name এর মান null বা undefined ছাড়া অন্য কিছু হয়, তবে সেই মানটি প্রদান করা হবে।
লজিক্যাল OR অপারেটরের সাথে পার্থক্যগুলি।
nullish coalescing অপারেটর লজিক্যাল OR অপারেটরের মতো হলেও একটি গুরুত্বপূর্ণ পার্থক্য রয়েছে। লজিক্যাল OR অপারেটর 'falsy' মান (false, 0, NaN, "", null, undefined, ইত্যাদি) পরীক্ষা করে, কিন্তু nullish coalescing অপারেটর শুধুমাত্র null এবং undefined পরীক্ষা করে।
লজিক্যাল OR অপারেটরের উদাহরণঃ
1let count = 0;
2let defaultCount = 10;
3
4// Since count is falsy (0), defaultCount is returned
5let result = count || defaultCount;
6console.log(result); // 10
নালিশ কোয়ালেসিং অপারেটরের উদাহরণঃ
1let count = 0;
2let defaultCount = 10;
3
4// Since count is neither null nor undefined, count is returned as is
5let result = count ?? defaultCount;
6console.log(result); // 0
এই উপায়ে, nullish coalescing অপারেটর 0 এবং খালি স্ট্রিং ("") এর মতো বৈধ মান বজায় রাখে এবং কেবল প্রয়োজনীয় হলে ডিফল্ট মান প্রদান করে। যেহেতু লজিক্যাল OR অপারেটর এই মানগুলিকে falsy হিসাবে বিবেচনা করে এবং ডিফল্ট মান প্রদান করে, ব্যবহারের ক্ষেত্রে উপযুক্ত অপারেটর বেছে নেওয়া গুরুত্বপূর্ণ।
সংযোগে ব্যবহৃত হলে উদাহরণঃ
nullish coalescing অপারেটর অন্যান্য লজিক্যাল অপারেটরের সাথে মিলিত হতে পারে, তবে এটি করার সময় সতর্কতা প্রয়োজন।
1let a = null;
2let b = 0;
3let c = false;
4
5// SyntaxError
6let result = a ?? b || c;- উদাহরণস্বরূপ, এটি লজিক্যাল OR অপারেটর (
||) বা লজিক্যাল AND অপারেটর (&&) এর সাথে একত্রে ব্যবহার করার সময়, অপারেশনগুলির ক্রম স্পষ্ট করতে ব্র্যাকেট ব্যবহার করা উচিত।
1let a = null;
2let b = 0;
3let c = false;
4
5let result = (a ?? b) || c;
6console.log(result); // false
- এই উদাহরণে, প্রথমে
a ?? bমূল্যায়ন করা হয় এবং যেহেতুaহলোnull, তাইbফেরত দেওয়া হয়। এরপর,b || cএর মূল্যায়ন হয়, এবং যেহেতুbমিথ্যা (falsy), তাই শেষ পর্যন্তcফেরত দেওয়া হয়।
যেসব ক্ষেত্রে nullish coalescing অপারেটর উপকারী
নিম্নলিখিত ক্ষেত্রে nullish coalescing অপারেটর উপকারী।
- ফর্মগুলির জন্য ডিফল্ট মান যখন ব্যবহারকারী কোনও কিছু ইনপুট করে না, তখন ফর্ম ইনপুট ক্ষেত্রগুলির জন্য একটি ডিফল্ট মান সেট করার ক্ষেত্রে এটি ব্যবহার করা যেতে পারে।
1let userAge = null;
2let defaultAge = 18;
3let age = userAge ?? defaultAge;
4console.log(age); // 18
- API প্রতিক্রিয়া পরিচালনা
API থেকে প্রতিক্রিয়াগুলিতে মান
nullবাundefinedহলে ফলোব্যাক প্রসেসিং সম্পন্ন করা যেতে পারে।
1let apiResponse = {
2 title: "New Article",
3 description: null
4};
5
6let title = apiResponse.title ?? "Untitled";
7let description = apiResponse.description ?? "No description available";
8console.log(title); // "New Article"
9console.log(description); // "No description available"
সারসংক্ষেপ
nullish coalescing অপারেটর (??) ডেটা ইনিশিয়াল করার এবং API উত্তর পরিচালনার জন্য খুবই উপকারী, কারণ এটি null বা undefined এর সম্মুখীন হলে ডিফল্ট মান প্রদান করে। বিশেষত, এটি প্রথাগত লজিক্যাল OR অপারেটর (||) এর তুলনায় একটি ভালো পছন্দ যখন আপনি 0 বা খালি স্ট্রিং এর মতো falsy মানগুলি যথাযথভাবে পরিচালনা করতে চান।
Nullish Coalescing অ্যাসাইনমেন্ট অপারেটর (??=) সম্পর্কে
পর্যালোচনা
JavaScript-এ, Nullish Coalescing অ্যাসাইনমেন্ট অপারেটর ??= পরিচিত করা হয়েছে null বা undefined ধারণকারী ভেরিয়েবলে নতুন মান দক্ষতার সাথে অ্যাসাইন করার জন্য। এই অপারেটরটি একটি সহজ শর্টকাট যা কেবলমাত্র একটি নির্দিষ্ট মান null বা undefined থাকলে ভেরিয়েবলে অ্যাসাইন করে।
প্রাথমিক ব্যবহার
nullish coalescing অ্যাসাইনমেন্ট অপারেটর নিম্নলিখিতরূপে কাজ করে:।
- যদি ভেরিয়েবলটি
nullবাundefinedহয়, এটি ডান পাশের মান অ্যাসাইন করে। - যদি ভেরিয়েবলটি
nullবাundefinedনা হয়, এটি কিছুই করে না এবং বর্তমান মান ধরে রাখে।
সিনট্যাক্স
nullish coalescing অ্যাসাইনমেন্ট অপারেটরের প্রাথমিক সিনট্যাক্স নিম্নলিখিতরূপে হয়:।
1x ??= y;xযদিnullবাundefinedহয়, তাহলেx-এyঅ্যাসাইন করা হয়।- যদি
xইতোমধ্যেই একটি মান ধারণ করে (যাnullবাundefinedনয়), তবেx-এর মান পরিবর্তিত হবে না।
উদাহরণ
নালিশ কোয়ালেসিং অ্যাসাইনমেন্ট অপারেটরের একটি মৌলিক উদাহরণ দেখি।
1let userName = null;
2let defaultName = "Guest";
3
4// Since userName is null, defaultName is assigned
5userName ??= defaultName;
6
7console.log(userName); // "Guest"
- এই কোডে, যেহেতু
userNameএর মানnull, তাইdefaultNameএর মান অ্যাসাইন করা হচ্ছে।
এরপর, এখানে একটি উদাহরণ রয়েছে যেখানে মানটি null বা undefined নয়।
1let userName = "Alice";
2let defaultName = "Guest";
3
4// Since userName is "Alice", nothing is assigned
5userName ??= defaultName;
6
7console.log(userName); // "Alice"
- এই ক্ষেত্রে, যেহেতু
userName-এর জন্য ইতোমধ্যেই"Alice"সেট করা আছে, তাই আর কোনও অ্যাসাইনমেন্ট করা হয় না।
অন্যান্য অ্যাসাইনমেন্ট অপারেটরের সাথে তুলনা
JavaScript-এ আরও কয়েকটি অ্যাসাইনমেন্ট অপারেটরও রয়েছে। বিশেষ করে, লজিক্যাল OR অ্যাসাইনমেন্ট অপারেটর (||=)-এর সাথে পার্থক্য গুরুত্বপূর্ণ।
1let value = 0;
2value ||= 10; // Assign 10 if value is falsy
3console.log(value); // 10
লজিক্যাল OR অ্যাসাইনমেন্ট অপারেটর false, 0, বা খালি স্ট্রিং ("") এর মতো falsy মানের সম্মুখীন হলেও একটি মান অ্যাসাইন করে, যেখানে nullish coalescing অ্যাসাইনমেন্ট অপারেটর কেবল তখনই কাজ করে যখন মানটি null বা undefined।
1let value = 0;
2value ??= 10;
3// Since value is neither null nor undefined,
4// nothing is assigned
5console.log(value); // 0
যেহেতু nullish coalescing অ্যাসাইনমেন্ট অপারেটর কেবল null বা undefined এর উপর কাজ করে, এটি 0 বা false এর মতো মান বজায় রাখতে চাইলে খুব উপকারী।
বাস্তব-বিশ্বের ব্যবহারের ক্ষেত্রে
শূন্য (null) কোয়ালেসিং অ্যাসাইনমেন্ট অপারেটরের জন্য একটি বাস্তব বিশ্বের ব্যবহার কেস নিম্নরূপ হতে পারে:।
-
ডিফল্ট মান সেট করা
যখন ব্যবহারকারীর ইনপুট বা API-এর প্রতিক্রিয়া
nullবাundefinedহতে পারে, তখন এটি ডিফল্ট মান নির্ধারণ করার জন্য সহায়ক।
1let userSettings = {
2 theme: null,
3 notifications: true
4};
5
6// Since theme is null, "light" is assigned
7userSettings.theme ??= "light";
8
9console.log(userSettings.theme); // "light"
-
ঐচ্ছিক পরামিতি পরিচালনা করা
যখন ফাংশনের আর্গুমেন্টগুলি উল্লেখ করা হয় না, তখন ডিফল্ট কাজগুলি সম্পাদন করার জন্য এটি ব্যবহৃত হতে পারে।
1function greet(name) {
2 name ??= "Guest";
3 console.log(`Hello, ${name}!`);
4}
5
6greet(); // "Hello, Guest!"
7greet("Alice"); // "Hello, Alice!"
সারসংক্ষেপ
nullish coalescing অ্যাসাইনমেন্ট অপারেটর (??=) কেবল তখনই একটি মান অ্যাসাইন করে যখন বাম-পাশের মান null বা undefined, কোডকে সংক্ষিপ্ত করে এবং অনিচ্ছাকৃত অ্যাসাইনমেন্ট প্রতিরোধে সহায়তা করে। বিশেষত যখন 0 বা false এর মতো "falsy" মানগুলির সাথে কাজ করা হয়, এটি ঐতিহ্যগত লজিক্যাল OR অপারেটর (||=) এর তুলনায় আরও উপযুক্ত হতে পারে।
এই অপারেটরটি ব্যবহার করে, আপনি আরও শক্তিশালী এবং পড়ার জন্য সহজ কোড তৈরি করতে পারেন।
আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।