سؤال

ال if(variable) جملة الاختبارات في البنيات التالية إذا كانت القائمة / الصفيف ليست خالية / غير محددة، لتجنب استثناء:

if (list)
    for (var k in list) {
       ...

if (array)
    for (var i = array.length; i >= 0; i--) {
        ...

لكن بناء الجملة JS يسمح التعبيرات مثل

null || []
undefined || {}

لذلك يمكنني جعل التعليمات البرمجية أقصر من قبل سطر واحد وما زلت تحقق من الصفيف / الكائن:

for (var k in obj || {}) {
    ...

for (var i = (array || {}).length; i >= 0; i--) {
    ...

السؤال أساسا هو: يفعل null/undefined || []/{} تعبير العودة الأخير في جميع المتصفحات؟

تعديل: اكتشف أن الأقواس المجعد أفضل ل for (var k in list || {}) التكرار، لأن مجموعة (أقواس مربعة) تسبب التكرار وألقيت استثناء.

هل كانت مفيدة؟

المحلول

نعم، null, undefined, 0, "", ، سوف جميع حلها false, ، عند تعامل مع المنطقية (التي || المشغل يفعل)، وهكذا، سوف يستخدم جميع المتصفح الأخير. هذا السلوك آمن تماما.

نصائح أخرى

نعم

أنا أكره الحد الأقصى 15 char.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top