তুলনা অপারেটররা দুটি অপারেন্ডের মান তুলনা করে এবং মূল্যায়ন করে যে তারা যে বিবৃতিটি তৈরি করে তা true
না false
। নিম্নলিখিত উদাহরণ দুটি অপারেন্ডের তুলনা করতে কঠোর সমতা অপারেটর ( ===
) ব্যবহার করে: অভিব্যক্তি 2 + 2
এবং মান 4
। যেহেতু অভিব্যক্তির ফলাফল এবং সংখ্যা মান 4
একই, এই অভিব্যক্তিটি true
হিসাবে মূল্যায়ন করে:
2 + 2 === 4
> true
জবরদস্তি এবং সমতা টাইপ করুন
দুটি সর্বাধিক ব্যবহৃত তুলনা অপারেটর হল ==
আলগা সমতার জন্য এবং ===
কঠোর সমতার জন্য। ==
সম্ভব হলে অপারেন্ডগুলিকে ডাটা টাইপের সাথে মেলানোর জন্য জোর করে দুটি মানের মধ্যে একটি আলগা তুলনা করে। উদাহরণস্বরূপ, 2 == "2"
true
প্রদান করে, যদিও একটি সংখ্যা মান এবং একটি স্ট্রিং মানের মধ্যে তুলনা করা হচ্ছে।
2 == 2
> true
2 == "2"
> true
একই !=
এর ক্ষেত্রেও সত্য, যেটি শুধুমাত্র তখনই true
হয় যখন তুলনা করা অপারেন্ডগুলি আলগাভাবে সমান না হয় ।
2 != 3
> true
2 != "2"
> false
===
বা !==
ব্যবহার করে কঠোর তুলনা টাইপ জবরদস্তি করবেন না। true
সাথে মূল্যায়ন করার জন্য কঠোর তুলনা করার জন্য, তুলনা করা মানগুলির একই ডেটা টাইপ থাকতে হবে। এই কারণে, 2 == "2"
true
ফেরত দেয়, কিন্তু 2 === "2"
false
ফেরত দেয়:
2 === 3
> false
2 === "2"
> false
স্বয়ংক্রিয়-জবরদস্তির ফলে হতে পারে এমন কোনো অস্পষ্টতা দূর করতে, যখনই সম্ভব ===
ব্যবহার করুন।
অপারেটর | বর্ণনা | ব্যবহার | ফলাফল |
---|---|---|---|
=== | কঠোরভাবে সমান | 2 === 2 | সত্য |
!== | কঠোরভাবে-সমান নয় | 2 !== "2" | সত্য |
== | সমান (বা "ঢিলেঢালা সমান") | 2 == "2" | সত্য |
!= | সমান নয় | 2 !="3" | সত্য |
> | এর চেয়ে বড় | 3 > 2 | সত্য |
>= | এর চেয়ে বড় বা সমান | 2 >= 2 | সত্য |
< | থেকে কম | 2 < 3 | সত্য |
<= | এর থেকে কম বা সমান | 2 <= 3 | সত্য |
সত্য এবং মিথ্যা
জাভাস্ক্রিপ্টের সমস্ত মান অন্তর্নিহিতভাবে true
বা false
, এবং সংশ্লিষ্ট বুলিয়ান মানের সাথে জোর করা যেতে পারে-উদাহরণস্বরূপ, "লুজলি সমান" তুলনাকারী ব্যবহার করে। মানগুলির একটি সীমিত সেট false
বাধ্য করে:
-
0
-
null
-
undefined
-
NaN
- একটি খালি স্ট্রিং (
""
)
অন্য সমস্ত মান true
জোর করে, এক বা একাধিক অক্ষর এবং সমস্ত অশূন্য সংখ্যা ধারণকারী যেকোন স্ট্রিং সহ। এগুলোকে সাধারণত "সত্য" এবং "মিথ্যা" মান বলা হয়।
"My string" == true
> true
100 == true
> true
0 == true
> false
লজিক্যাল অপারেটর
দুটি বা ততোধিক শর্তসাপেক্ষ বিবৃতির মূল্যায়নের উপর ভিত্তি করে একটি স্ক্রিপ্টের প্রবাহ নিয়ন্ত্রণ করতে যৌক্তিক AND ( &&
), OR ( ||
), এবং NOT ( !
) অপারেটরগুলি ব্যবহার করুন:
2 === 3 || 5 === 5;
> true
2 === 2 && 2 === "2"
> false
2 === 2 && !"My string."
> false
একটি যৌক্তিক নয় ( !
) অভিব্যক্তি একটি অপারেন্ডের সত্য বা মিথ্যা মানকে অস্বীকার করে, যদি অপারেন্ডটি false
মূল্যায়ন করে তাহলে true
মূল্যায়ন করে এবং অপারেন্ডটি true
মূল্যায়ন করলে false
:
true
> true
!true
> false
!false
> true
একটি সংখ্যা বা একটি স্ট্রিংয়ের মতো অন্য ডেটা টাইপের সামনে লজিক্যাল NOT অপারেটর ( !
) ব্যবহার করে, সেই মানটিকে একটি বুলিয়ানে জোর করে এবং ফলাফলের সত্য বা মিথ্যা মানকে বিপরীত করে।
"string"
> "string"
!"string"
> false
0
> 0
!0
> true
দুটি নট অপারেটর ব্যবহার করা সাধারণ অভ্যাস যা দ্রুত ডেটাকে তার মিলিত বুলিয়ান মানের সাথে জোর করে:
!!"string"
> true
!!0
> false
যৌক্তিক AND এবং OR অপারেটররা নিজেরাই কোনো জবরদস্তি করে না। তারা মূল্যায়ন করা দুটি অপারেন্ডের একটির মান ফেরত দেয়, সেই মূল্যায়ন দ্বারা নির্ধারিত নির্বাচিত অপারেন্ডের সাথে।
যৌক্তিক AND ( &&
) তার দুটি অপারেন্ডের প্রথমটি শুধুমাত্র যদি সেই অপারেন্ডটি false
মূল্যায়ন করে, এবং অন্যথায় দ্বিতীয় অপারেন্ডটি প্রদান করে। বুলিয়ান মানের সাথে মূল্যায়ন করা তুলনাতে, লজিক্যালের উভয় দিকের অপারেন্ড এবং true
মূল্যায়ন করলেই এটি true
হয়। যদি উভয় পক্ষ false
মূল্যায়ন করে, এটি false
ফেরত দেয়।
true && false
> false
false && true
> false
false && false
> false
true && true
> true
যখন &&
দুটি নন-বুলিয়ান অপারেন্ডের সাথে ব্যবহার করা হয়, প্রথম অপারেন্ডটি অপরিবর্তিত ফেরত দেওয়া হয় যদি এটিকে জোরপূর্বক false
বাধ্য করা যায়। যদি প্রথম অপারেন্ড true
জোর করা যায়, দ্বিতীয় অপারেন্ড অপরিবর্তিত ফেরত দেওয়া হয়:
false && "My string"
> false
null && "My string"
> null
"My string" && false
> false
"My string" && "My second string"
> "My second string"
2 === 2 && "My string"
> "My string"
যৌক্তিক OR ( ||
) তার দুটি অপারেন্ডের প্রথমটি প্রদান করে শুধুমাত্র যদি সেই অপারেন্ডটি true
মূল্যায়ন করে এবং দ্বিতীয়টি অন্যথায়। বুলিয়ান মানগুলির সাথে মূল্যায়ন করা তুলনাতে, এর অর্থ হল এটি true
ফেরত দেয় যদি কোন একটি অপারেন্ড true
মূল্যায়ন করে এবং যদি কোন পক্ষই true
মূল্যায়ন না করে তবে এটি false
ফেরত দেয়:
true || false
> true
false || true
> true
true || true
> true
false || false
> false
ব্যবহার করার সময় ||
দুটি নন-বুলিয়ান অপারেন্ডের সাথে, এটি প্রথম অপারেন্ডটিকে অপরিবর্তিত ফিরিয়ে দেয় যদি এটি true
জোর করা যায়। যদি প্রথম অপারেন্ডকে জোর করে false
বলা যায়, দ্বিতীয় অপারেন্ডটি অপরিবর্তিত ফেরত দেওয়া হয়:
false || "My string"
> "My string"
null || "My string"
> "My string"
"My string" || false
> "My string"
"My string" || "My second string"
> "My string"
2 === 2 || "My string"
> true
শূন্য কোলেসিং অপারেটর
ES2020-এ প্রবর্তিত , "নালিশ কোলেসিং অপারেটর" ( ??
) শুধুমাত্র প্রথম অপারেন্ডটি ফেরত দেয় যদি সেই অপারেন্ডের null
বা undefined
ছাড়া অন্য কোন মান থাকে। অন্যথায়, এটি দ্বিতীয় অপারেন্ড প্রদান করে।
null ?? "My string"
> "My string"
undefined ?? "My string"
> "My string"
true ?? "My string";
> true
??
একটি যৌক্তিক OR এর অনুরূপ, তবে প্রথম অপারেন্ডকে কীভাবে মূল্যায়ন করা হয় তাতে কঠোর। ||
undefined
এবং null
সহ false
বাধ্য করা যেতে পারে এমন যেকোনো এক্সপ্রেশনের জন্য দ্বিতীয় অপারেন্ড প্রদান করে। ??
দ্বিতীয় অপারেন্ডটি ফেরত দেয় যখন প্রথম অপারেন্ডটি null
বা undefined
ছাড়া অন্য কিছু হয়, এমনকি যদি এটি false
বাধ্য করা যেতে পারে:
0 ?? "My string";
> 0
false ?? "My string";
> false
undefined ?? "My string";
> "My string"
লজিক্যাল অ্যাসাইনমেন্ট অপারেটর
প্রথম অপারেটরের কাছে দ্বিতীয় অপারেটরের মান নির্ধারণ করতে অ্যাসাইনমেন্ট অপারেটর ব্যবহার করুন। এর সবচেয়ে সাধারণ উদাহরণ হল একটি একক সমান চিহ্ন ( =
), যা একটি ঘোষিত পরিবর্তনশীলকে একটি মান নির্ধারণ করতে ব্যবহৃত হয়।
লজিক্যাল অ্যাসাইনমেন্ট অপারেটর ব্যবহার করুন শর্তসাপেক্ষে সেই ভেরিয়েবলের সত্য বা মিথ্যা মানের উপর ভিত্তি করে একটি ভেরিয়েবলের মান নির্ধারণ করতে।
লজিক্যাল AND অ্যাসাইনমেন্ট ( &&=
) অপারেটর দ্বিতীয় অপারেন্ডের মূল্যায়ন করে এবং প্রথম অপারেন্ডকে বরাদ্দ করে যদি শুধুমাত্র প্রথম অপারেন্ডটি true
মূল্যায়ন করে — কার্যকরীভাবে, "যদি প্রথম অপারেন্ডটি সত্য হয়, তবে পরিবর্তে এটিকে দ্বিতীয় অপারেন্ডের মান নির্ধারণ করুন :"
let myVariable = false;
myVariable &&= 2 + 2;
> false
myVariable = true;
myVariable &&= 2 + 2;
> 4
প্রথম অপারেন্ডের সত্য বা মিথ্যা মান নির্ধারণ করে যে একটি অ্যাসাইনমেন্ট করা হয়েছে কিনা। যাইহোক, তুলনা অপারেটর ব্যবহার করে প্রথম অপারেন্ডটি মূল্যায়ন করার চেষ্টা করার ফলে একটি true
বা false
বুলিয়ান হয়, যা একটি মান নির্ধারণ করা যায় না:
let myVariable = 5;
myVariable > 2 &&= "My string"
> SyntaxError: Invalid left-hand side in assignment
যৌক্তিক OR অ্যাসাইনমেন্ট ( ||=
) অপারেটর দ্বিতীয় অপারেন্ডের মূল্যায়ন করে এবং প্রথম অপারেন্ডকে অর্পণ করে যদি প্রথম অপারেন্ডটি false
মূল্যায়ন করে — কার্যকরভাবে "যদি প্রথম অপারেন্ডটি মিথ্যা হয়, তবে পরিবর্তে এটিকে দ্বিতীয় অপারেন্ডের মান নির্ধারণ করুন:"
let myVariable = false;
myVariable ||= 2 + 2;
> 4
myVariable = true;
myVariable ||= 2 + 2;
> true
আপনার উপলব্ধি পরীক্ষা করুন
কোন অপারেটর "কঠোর সমান" নির্দেশ করে?
=
!=
==
===