[1،2،3]. يمكن أن يحصل الطول 3 ، "123". يمكن أيضًا الحصول على 3. أي شخص يفهم JS يعرف ذلك.
ولكن ماذا سوف eval.length ، regexp.length ، "" .toString.length ، 1..ToString.Length GET؟
احصل على 1 و 2 و 0 و 1 على التوالي. ماذا تمثل هذه الأرقام؟
هذا سؤال يطرحه العديد من الأصدقاء الجدد في المجموعة. في الواقع ، طول الوظيفة هو عدد المعلمات الرسمية.
لنأخذ مثالًا موجزًا:
نسخة الكود كما يلي:
اختبار الوظيفة (A ، B ، C) {}
Test.Length // 3
اختبار الوظيفة (A ، B ، C ، D) {}
Test.Length // 4
أليست بسيطة للغاية ، ولكن هناك أيضًا أدوات خاصة. إذا تم استدعاء المعلمة داخليًا من خلال الوسائط ولم يتم تعريف أي معلمة فعلية ، فسيحصل الطول على 0 فقط.
نسخة الكود كما يلي:
اختبار الوظيفة () {console.log (وسيطات) ؛}
Test.Length // 0
يمكن أن تمر هذه الوظيفة بالفعل ، وتسمى المعلمات أيضًا داخليًا ، لكن الطول لا يمكن أن يعرف عدد المعلمات التي تم تمريرها.
لا يمكن الحصول على المعلمات الفعلية إلا من خلال الوسيطات. الطول عند تنفيذ الوظيفة.
نسخة الكود كما يلي:
دالة اختبار () {console.log (encuments.length) ؛}
اختبار (1،2،3) ؛ // الإخراج 3
اختبار (1،2،3،4) ؛ // الإخراج 4
لذلك ، يمكن أن تحصل خاصية الطول للدالة فقط على عدد المعلمات الرسمية ، ولكن لا يمكنها معرفة عدد المعلمات الحقيقية.