شذوذ مقارنة السلسلة: لماذا "11" أقل من "3" في JavaScript
يمكن أن يكون سلوك مقارنة السلسلة في JavaScript غير بديهي في بعض الأحيان. أحد الأمثلة على ذلك هو عدم المساواة '11'
في JavaScript، تتم مقارنة السلاسل من الناحية المعجمية حرفًا بحرف، من اليسار إلى اليمين. عندما تكون الأحرف مختلفة، تعتمد المقارنة على نقاط رمز Unicode الخاصة بها. رمز ASCII لـ '1' هو 49، بينما رمز ASCII لـ '3' هو 51. لذلك، فإن الحرف الأول من '11' (بنقطة رمز 49) أقل من الحرف الأول من '3' (برمز نقطة 51)، مما يؤدي إلى عدم المساواة '11'
إليك بعض الأمثلة الإضافية لتوضيح هذا السلوك:
من المهم لاحظ أن نفس قواعد المقارنة تنطبق على الحروف. إذا لم يكن "b" أقل من "a"، فلا يمكن أن يكون "abc" أقل من "aaa". ومع ذلك، فإن 'c' أقل من 'd'، لذا فإن 'abc' أقل من 'abd'.
لتجنب مثل هذه الحالات الشاذة عند مقارنة السلاسل كأرقام، يوصى بتحويلها بشكل صريح باستخدام عامل التشغيل ' ' :
'11'
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3