تعد JavaScript واحدة من أكثر لغات البرمجة شيوعًا اليوم ، ولكن الشعبية هي أيضًا الآثار الجانبية لخصائص اللغة الخاصة. بغض النظر عن مدى روعة اللغة ، لا يزال الآلاف من المبرمجين يصنعون مجموعة من الأخطاء كل يوم. لا تضحك على الآخرين في الوقت الحالي ، ربما أنت واحد منهم.
فيما يلي بعض قصاصات JS قصيرة وذات صالحة تمامًا (يمكنك تجربة ذلك على وحدة التحكم الخاصة بك):
نسخة الكود كما يلي:
typeof nan === 'number' // true
Infinity === 1/0 // true
0.1 + 0.2 === 0.3 // false ، وينطبق الشيء نفسه على أقواس مسبوقة
"3" + 1 // '31'
"3" - 1 // 2
هل ما زلت تؤمن بجافا سكريبت الخاص بك؟
1. الحد الأدنى لقيمة JS
نسخة الكود كما يلي:
number.min_value> 0 ؛ //حقيقي
يتم استخدام number.min_value للحد الأدنى من القيمة التي يمكن أن تعبر عنها JavaScript ، والتي هي 5E-324 ، ولكن هذا هو أقرب رقم في JS إلى 0.
2. اتصال السلسلة
نسخة الكود كما يلي:
("Foo" + + "BAR") === "Foonan" // true
"لماذا أنا" + typeof + "" // لماذا أنا الرقم
JS يقوم بتوصيف "Foo" + ( + "BAR") ، والذي سيحول "شريط" إلى رقم
3. وظيفة parseint
نسخة الكود كما يلي:
Parseint ('06 ') ؛ // 6
Parseint ('08 ') ؛ // 0 لاحظ أن إصدار Google الجديد قد تم إصلاحه
Parseint (NULL ، 24) === 23 // TRUE
4. هل الكائن الفارغ؟
نسخة الكود كما يلي:
Typeof null // object
NULL مثيل كائن // false
5. إرجاع العودة إلى المحتوى
نسخة الكود كما يلي:
وظيفة myjson ()
{
يعود
[
2
]
}
myjson () ؛ // غير محدد
يجب أن يكون المحتوى الذي تم إرجاعه عن طريق الإرجاع على نفس سطر الإرجاع
6. أرقام غريبة
نسخة الكود كما يلي:
012 == 12 // false
'012' == 12 // true
"3" + 1 // '31'
"3" - 1 // 2
0.1 + 0.2 == 0.3 // false
0.1 + 0.7 == 0.8 // false
0.2 + 0.7 == 0.9 // false
99999999999999999 // 10000000000000000000
9999999999999999999-1 // 10000000000000000000
111111111111111111111111 // 1111111111111111110000
7. معلمات غريبة
نسخة الكود كما يلي:
وظيفة مرحبا (ماذا) {
تنبيه (الحجج [0]) ؛ // فيكي
ماذا = "العالم" ؛
إرجاع "مرحبًا ،" + الوسائط [0] + "!" ؛
}
مرحبا ("فيكي") ؛ //"مرحبا بالعالم!"
8. العلامة المتساوية التي تجعل الناس يفقدون رؤوسهم
نسخة الكود كما يلي:
nan === nan ؛ // خطأ شنيع
[] == خطأ ؛ // حقيقي
"" == false ؛ // حقيقي
فارغ == خطأ ؛ // خطأ شنيع
[] ==! [] // صحيح
window.window == نافذة // صحيح
window.window === window // false ، بعض المتصفحات صحيحة
نافذة == مستند // صحيح ، بعض المتصفحات خاطئة
("0" && {}) == 0 // false
(0 && {}) == 0 // true
0 == "0" // صحيح
[] == 0 // صحيح