وأنا أقرأ كتاب في البرمجة يقول المؤلف هنالك فرق بسيط جدا بين === If وبين == if ولست بحاجة لذكره وسأثبت على إستخدام === على مدى الفصول.
كان هذا كتاب JavaScript وانا بحثت في جوجل ووجدت موضوع ولكن تحدث عن هذا الجانب بشي لم افهمه ولم استخدمه من قبل.
وأنا أقرأ كتاب في البرمجة يقول المؤلف هنالك فرق بسيط جدا بين === If وبين == if ولست بحاجة لذكره وسأثبت على إستخدام === على مدى الفصول.
كان هذا كتاب JavaScript وانا بحثت في جوجل ووجدت موضوع ولكن تحدث عن هذا الجانب بشي لم افهمه ولم استخدمه من قبل.
الفرق هو ان === تتاكد ان القيمة متساوي والنوع متساوي
اما == تتاكد فقط اذا كانت القيمة متساوية
=== و !== موجودة في بعض لغات البرمجة مثل JavaScript و PHP. الفرق بينهم وبين ال == العادية ان ال === تمنع إجبار التحويل (coercion).
مثلاً في JavaScript:
"7" == 7 << true
"7" === 7 << false
كما ذكروا الزملاء واضيف بأنه من الاجزاء المقلقه في الجافاسكريبت لذا استخدم الثلاثي حتى تتخلص من الأخطاء في الكود
مثال بأنك تريد تشيك على أي متغير مدخل لبرنامجك اذا كان قيمته صفر إعمل كذا له ووصل له متغير يحمل قيمة false او صفر لكن نصي "0"
راح يتنفذ البرنامج لانها تساوي صفر إعتباطيا لكن اذا استعملت الثلاثي سيتأكد من أنه القيمة صفر ونفس النوع رقمي .. انتهى
كما قال الأخوه فإن ال === تشترط تساوى نوع المتغير و قيمته
حيث أن :
0 == "0" قيمة صحيحة
0 == false قيمة صحيحة
بينما
0 === "0" قيمة غير صحيحة
0 === false قيمة غير صحيحة
لذلك تستخدم فى حالات التحقق القصوى و خاصة ال API المستخدم بين موقع وتطبيق الجوال الخاص به للتأكد من أن من يستخدم ال API على علم تام بما يجب إرساله و استقباله
كذلك فى ال API الخاص بالمعاملات المادية
كذلك تستخدم فى حالة أردت زيادة الحماية على موقعك و جعل الدوال التى تستقبل parameters من ال url أو من javascript تستقبل النوع الصحيح من البيانات حتى تعمل .. فلا يمكن التلاعب بها .. على الأقل بواسطة المبتدأين
العامل === يسمّى strict equality operator وهو يقارن الطّرفين بقواعد صارمة، بعكس == الذي قد يُجري التحويل بين الأنواع (type coercion):