اذهب إلى المحتوى

السؤال

Recommended Posts

  • 2
نشر

كلا المعاملان وظيفتهم المقارنة, الفرق أن ال=== تقوم بمقارنة القيمة ونوع البيانات , بينما == تقوم بمقارنة القيمة فقط

فمثلا

0=="0" تساوي true لأن ال== تقارن القيمة فقط , وكلاً منهم قيمتها صفراً

بينما 0==="0" تساوي false لأن ال=== تقارن القيمة ونوع البيانات, وهنا نوع البيانات مختلف, احدهما نوعه رقم والأخر سلسلة نصية/ حرف

والجدول التالي يوضح بعض الأشياء التي قد تسبب الحيرة للمبرمج أثناء التعامل مع هذان المعاملان

0 == false   // حقيقي, لأن قيمة ال"غير حقيقي" تساوي صفراً
0 === false  // غير حقيقي, لأن على الرغم أن قيمة ال"غير حقيقي" تساوي صفراً , إلا أن نوعها ليس رقم وإنما Boolean
1 == "1"     // حقيقي, لأ، كلاً منهما قيمته ب1 على الرغم من إختﻻف نوع البيانات
1 === "1"    // غير حقيقي لأننا نستخدم علامة المساواة الثﻻثية والتي تهتم بنوع البيانات, فعلى الرغم أن كلاً منهم قيمته 1 إﻻ أن كلاً منهما له نوع بيانات مختلف
null == undefined // حقيقي لأن لهم نفس القيمة
null === undefined // غير حقيقي لأن عﻻمة المساواة الثلاثية تتوجب أن يكون لهم نفس نوع البيانات
'0' == false // حقيقي لأن عﻻمة المساواة الثنائية تهتم بالقيمة فقط , وقيمة ال"غير حقيقي" بصفراً
'0' === false // غير حقيقي, لأن عﻻمة المساواة الثﻻثية تهتم بنوع البيانات, وهنا النوع مختلف

 

  • 1
نشر (معدل)

== تستخدم مع if condition لكي تحدد إذا كان هناك فرق بين المتغيران أو لا يوجد فرق بدون الإعتماد على نوع المتغيران بينما 

=== تستخدم مع if condition لكي تحدد إذا كان هناك فرق بين المتغيران أو لا يوجد فرق و لكن تعتمد على نوع المتغيران

كما في المثال الأتي 

let age='1'
let age2=1

if(age == age2){
	console.log('good')
}

if(age === age2){
	console.log('nice')
}

لاحظ في المثال السابق أن age لها قمية 1 و لكن النوع  string 

اما age2 لها قيمة 1 و لكن النوع number 

لذلك الناتج سوف يكون good في الكونسول لأن == لا تعتمد على نوع المتغيران

تم التعديل في بواسطة Ziyad Hasan
  • 0
نشر
  • "==" يدل على التساوي في القيمة بين متحولين، اليك بعض القواعد (مع قواعد قد تجدها غريبة)
"1" ==  1;            // true
0 == false;           // true
null == undefined     // true

0 == null;            // false
0 == undefined;       // false
  • "===" يعمل نفس عمل المعامل السابق لكن يضاف شرط للتساوي وهو تساوي نوع المتحولين
    "1" ===  1;            // false
    0 === false;           // false
    null === undefined     // false
    
    0 === null;            // false
    0 === undefined;       // false

    الأفضل دائما استخدام المعامل "===" لتجنب أخطاء كثيرة قد تقع بها 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...