== در مقابل === در جاوا اسکریپت

بررسی اجمالی
در جاوا اسکریپت از عملگر برابری برای تعیین برابری دو مقدار استفاده می شود. تفاوت اصلی بین عملگرهای “==” و “===” در جاوا اسکریپت این است که عملگر “==” تبدیل نوع عملوندها را قبل از مقایسه انجام می دهد، در حالی که عملگر “===” مقادیر و آنها را مقایسه می کند. انواع داده ها
محدوده
در این وبلاگ با عملگرهای “==” و “===” در جاوا اسکریپت آشنا می شویم و سعی می کنیم هر دوی آنها را با مثال هایی درک کنیم.
معرفی
در زندگی روزمره، همه ما با موقعیت های متعددی روبرو هستیم که در آن نیاز به مقایسه دو چیز داریم. به عنوان مثال، همه ما از Twitter و Discord استفاده می کنیم. هنگامی که از برنامه بازدید می کنیم، صفحه ورود به سیستم را می بینیم که نام کاربری و رمز عبور را درخواست می کند، جایی که باید جزئیات خود را اضافه کنیم. هنگامی که جزئیات را ارسال می کنیم، وب سایت از طریق پایگاه داده خود می گذرد و جزئیات ارائه شده ما را با جزئیات موجود مقایسه می کند. این به شما امکان می دهد در صورت مطابقت جزئیات وارد شوید. در غیر این صورت، آن را ندارد. این یکی از موارد متعددی است که در آن دو مورد با هم مقایسه میشوند و از نتیجه برای تعیین مسیر بعدی استفاده میشود.
در جاوا اسکریپت زمانی که باید دو مقدار را با هم مقایسه کنیم و تصمیم بگیریم که آیا مقادیر برابر هستند یا خیر، از عملگر زیر استفاده می کنیم.
-
برابری ضعیف (“==”)
-
برابری دقیق (“===”)
توجه داشته باشید – عملگرهای برابری یک مقدار بولی برمی گردانند.
اینکه کدام عملیات را انتخاب می کنیم بستگی به نوع مقایسه ای دارد که به دنبال انجام آن هستیم.
دو برابر (==) در مقابل سه برابر (===)
اپراتور “==” چیست؟
“==” نیز به عنوان شناخته شده است از دست دادن برابری اپراتور. هدف اصلی این است که بررسی کنیم آیا دو عملوند آن پس از آن برابر هستند یا خیر تبدیل نوع. اگر هر دو عملوند از یک مقدار باشند یا هر دو از انواع مختلف باشند، مقدار true را برمی گرداند، هر کدام از آنها به نوع داده عملوند دیگر تبدیل می شود و مقدار یکسانی دارند. اگر هر دو عملوند مقادیر متفاوتی داشته باشند، false را برمی گرداند.
توجه داشته باشید: عملگر “==” قبل از مقایسه عناصر، تبدیل نوع آنها را انجام می دهد.
خوب، اجازه دهید ابتدا بفهمیم، تبدیل نوع چیست؟
هنگام مقایسه دو عملوند، عملگر “==” تمایل دارد هر یک از آنها را به نوع عملوند دیگر تبدیل کند، اگر آنها از نوع داده یکسانی نباشند، قبل از انجام مقایسه ضعیف مقادیر آنها.
تبدیل نوع تفاوت اصلی بین عملگرهای “==” و “===” در جاوا اسکریپت است.
بیایید با یک مثال آن را درک کنیم:
const x=21;
const y='21';
console.log(x==y); //true
در مثال بالا، x یک عدد و y یک رشته است. عملگر “==” ابتدا مقدار y را به یک نوع عدد تبدیل می کند و سپس با x مقایسه می شود. از آنجایی که هر دو مقدار یکسان هستند، مقدار true را برمی گرداند.
عملگر “===” چیست؟
“===” نیز به عنوان شناخته شده است برابری شدید اپراتور. هر دو مقدار عملوندها را بدون انجام تبدیل نوع مقایسه می کند. اگر مقادیر دارای انواع داده های مختلف باشند، مقادیر نابرابر در نظر گرفته می شوند. اگر مقادیر از یک نوع داده باشند و مقدار یکسانی داشته باشند، آنها برابر در نظر گرفته می شوند.
بیایید با یک مثال آن را درک کنیم:
const x = 2;
const y = 2;
const z = '2';
console.log(x===y); //true
console.log(x===z); //false
در مثال بالا، x و y اعداد هستند اما z یک مقدار رشته است. بنابراین، پس از مقایسه x و y، مقدار true را برمی گرداند، اما از آنجایی که z یک رشته است، false را برمی گرداند.
چند نمونه از هر دو عملگر:
مثال 1: مقایسه یک عدد با یک رشته
const x= 5;
const y ='5';
console.log(x==y); // true
console.log(x===y); // false
مثال 2: مقایسه اشیاء
const name1 = { name: "Raj" }
const name2 = { name: "Raj" }
console.log(name1==name1); // true
console.log(name1=name2); // false
console.log(name1===name1); // true
console.log(name1===name2); // false
در مثال بالا، خروجی اول true را برمیگرداند زیرا name1 و name1 به یک نمونه اشاره دارند در حالی که name1 و name2 false را برمیگردانند زیرا به نمونههای متفاوتی اشاره میکنند. هرگز اشیاء را با عملگر “==” مقایسه نکنید زیرا اشیاء مختلف با مقدار یکسان برابر نیستند.
مثال 3: مقایسه بولی و عدد
console.log(true == 1) // true
console.log(true === 1) // false
console.log(false == 0) // true
console.log(false === 0) // false
در مثال بالا، عملوند اول از نوع بولی و دومی از نوع عددی است. عملگر “==” تبدیل نوع یک عدد به بولی را انجام می دهد (زیرا 1 درست و 0 در بولی نادرست در نظر گرفته می شود).
مثال 4: مقایسه null و undefined
const x = null;
const y ;
console.log(x==y); // true
در مثال بالا مقدار true را برمی گرداند زیرا مقایسه null و undefined درست است.
مثال 5: وقتی مقادیر عملوند NaN باشد (عدد نیست).
const x= NaN;
const y= NaN;
console.log(x==y); // false
console.log(x===y); // false
در مثال بالا، پس از مقایسه هر دو مقدار NaN، false برمیگرداند زیرا عملگر برابری NaN را با هر مقدار دیگر از جمله خودش نابرابر رفتار میکند.
برای کسب اطمینان در این موضوع، تمام مثال های بالا را تمرین کنید.
نتیجه
-
عملگرهای “==” و “===” برای بررسی برابری دو عملوند استفاده می شوند.
-
“==” عملگر شل و “===” عملگر Strict است.
-
“==” قبل از بررسی، تبدیل نوع را انجام می دهد و “===” قبل از بررسی، تبدیل نوع را انجام نمی دهد.
به طور کلی استفاده از عملگر برابری دقیق “===” هنگام مقایسه در جاوا اسکریپت بهترین روش در نظر گرفته می شود، زیرا از رفتار غیرمنتظره ای که می تواند با تبدیل نوع معرفی شود جلوگیری می کند.