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

ما الفرق بين المعامل الشرطي الثنائي والمعامل الشرطي الثلاثي في جافاسكريبت

خالد مرتضى

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...