تفاوت بین اپراتورهای "==" و "===" در Javascript چیست؟


پاسخ 1:

==

برابری ارزش مجاز

===

برابر مقدار مجاز کمتر

مثالها

  • مثال ساده:
1 == '1' // true true 1 === '1' // Return false
  • سخت تر:
false == تعریف نشده // false false == تهی // کاذب

قابلیت انتقال پذیری

null == تعریف نشده // true

==

JavaScript: کتاب قسمت خوب

منبع:

  • آیا مهم است از کدام اپراتور (== در مقابل ===) برای مقایسه جاوا اسکریپت استفاده می کنم؟ JavaScript: رابطه خوب قطعات ترانزیتی

پاسخ 2:

بله سردرگمی کلاسیک در JavaScript! : د

در واقع مزاحمتی نیست ، یک ویژگی است!

به طور پیش فرض ، جاوا اسکریپت سعی دارد به طور ضمنی نوع داده متغیرهای مورد مقایسه را تغییر دهد. یعنی تلاش می شود در صورت مواجهه با متغیرهایی از انواع مختلف داده که با هم مقایسه می شوند ، اشتباه نکنیم. در عوض ، نوع داده به طور خودکار تغییر می یابد و سپس مقایسه می شود.

بنابراین اگر فقط "==" را مقایسه می کنید ، موتور جاوا اسکریپت بطور ضمنی سعی می کند یکی از متغیرها را به همان نوع دیگر تبدیل کند و سپس شباهت را بررسی کند. (این معمولاً به سردرگمی زیادی منجر می شود و به هیچ وجه توصیه نمی شود!)

اما اگر از مقایسه دقیق "===" استفاده می کنید ، موتور جاوا اسکریپت دیگر هیچ نوع داده ای را تغییر نمی دهد ، اما مقادیر واقعی را همانطور که هستند مقایسه می کند! این نتیجه دقیقی را می دهد همانطور که انتظار دارید! این همیشه باید به جای "==" استفاده شود.

در اینجا یک مثال کد وجود دارد:

بگذارید a = 10 // نوع داده شماره! اجازه دهید b = '10' // نوع داده رشته! if (a == b) {// یک آزمایش شل انجام دهید! console.log ("به طور ضمنی و واقعی را بررسی کردید: O")؛ } if (a === b) {// یک بررسی دقیق انجام دهید! console.log ('کد دست نیافتنی!')؛ } other {console.log ('به طور دقیق بررسی کنید و بنابراین FALSE!: D')؛ } شماره: // به طور ضمنی و حقیقی بررسی شد! : Ö // دقیق و جعلی را بررسی کنید! : د

امیدوارم که سردرگمی شما را پاک کند!

در راه خود موفق باشید!


پاسخ 3:

'===' بررسی برابری شدید ، هر دو مقدار و نوع را بررسی می کند ، هر دو مقدار باید یکسان باشند ، فقط "===" درست می شود.

'==' فقط مقادیر را مقایسه می کند و درست یا غلط را برمی گرداند ، جایی که TYPE COERCION نیز اجرا می شود.

به عنوان مثال

0 == false // true

0 === false // false زیرا آنها از نوع دیگری هستند

1 == "1" // تبدیل صحیح ، خودکار خودکار

1 === "1" // false زیرا آنها از نوع دیگری هستند


پاسخ 4:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 5:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 6:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 7:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 8:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 9:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 10:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 11:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است


پاسخ 12:

قبل از انجام مقایسه برابری ، اپراتور "==" تبدیل های لازم را انجام می دهد.

با این حال ، عملگر "===" برای برابری دقیق آزمایش می کند ، بنابراین تبدیل نوع انجام نمی شود. اگر دو مقدار در مقایسه با هم یکسان نباشند ، غلط برگردانده می شود.

به عنوان مثال:

سه برابر همین

5 === 5

// درست است

5 === '5'

// اشتباه است

دو برابر

5 == 5

// درست است

5 == '5'

// درست است