إن استخدام ==
للمقارنة بالصفر ببساطة ليس خطأ أو خطيرًا عند مقارنة قيمة مضمونة لتكون رقمًا. فمثلا:
var arr = ["foo"];
var arrIsEmpty = (arr.length == 0);
أميل إلى استخدام ==
في هذه المواقف وهو قرار أسلوبي بحت. أود من JSHint احترام رغباتي المستنيرة.
أنت على علم بخيار eqeqeq
، أليس كذلك؟ هذا هو المكان الذي يأتي منه هذا الخطأ ، فإن ضبطه على خطأ سيحررك من هذه الحالة. أم أنك تبحث عن شيء أكثر تحديدًا ، مثل فقط قمع المقارنات بـ 0
(وليس المقارنات بقيم أخرى)؟
eqeqeq هي الحالة العامة. يبدو أن هناك فحصًا منفصلاً للمقارنة بـ 0 الذي يشتكي حتى إذا كان eqeqeq خاطئًا.
ما أريده حقًا هو أن أكون قادرًا على قمع جميع أشكال الشكاوى الواردة من JSHint حول استخدام == و! = ، لكن المقارنة مع 0 هي التي تمنع ذلك.
هم أرى. الكود ذو الصلة موجود هنا ، إنه بالتأكيد يستدعي هذه المقارنة على وجه التحديد (من بين أمور أخرى):
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L2201 -L2215
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L1338 -L1346
يمكنك تعطيل هذا التحذير من خلال رمزه.
بالنسبة للآخرين الذين قد يجدون صعوبة في الاستفادة من قيمة الإجابة ، يبدو أن تعيين "-W041": false
يفي بالغرض.
شكرا privman
لمعلوماتك ، وجدت أيضًا المزيد من التفاصيل هنا
هل هناك دافع لإبقاء تحذيرات W041
سارية عند "eqeqeq": false
؟
إنهم يحظرون بشكل فعال استخدام ==
و !=
في المواقف المتأثرة.
التعليق الأكثر فائدة
بالنسبة للآخرين الذين قد يجدون صعوبة في الاستفادة من قيمة الإجابة ، يبدو أن تعيين
"-W041": false
يفي بالغرض.