তুলনা অপারেটররা দুটি অপারেন্ডের মান তুলনা করে এবং মূল্যায়ন করে যে তারা যে বিবৃতিটি তৈরি করে তা 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 আপনার উপলব্ধি পরীক্ষা করুন
কোন অপারেটর "কঠোর সমান" নির্দেশ করে?
======!=