پارامترهای توابع JavaScript

جاوااسکریپت توابعبررسی هیچ چیز در مورد مقادیر پارامترها نمی‌کنند.

پارامترهای توابع

در زمان‌های زودتر در این آموزش، شما یاد گرفتید که توابع می‌توانندپارامتر:

functionName(parameter1, parameter2, parameter3) {
    کدی که باید اجرا شود
}

پارامترهای توابع (parameter)به معنای پارامترهایی است که در تعریف توابع لیست شده‌اندنام.

پارامترهای توابع (argument)به معنای واقعی پارامترهایی است که به توابع ارسال می‌شوند یا توسط توابع دریافت می‌شوندارزش‌ها.

قوانین پارامتر

تعریف توابع جاوااسکریپت نوع داده‌ای برای پارامترها (parameter) را مشخص نمی‌کنند.

توابع جاوااسکریپت از نوع پارامترهای ارسالی (argument) نوع‌چک نمی‌کنند.

توابع جاوااسکریپت تعداد پارامترهای دریافت شده را بررسی نمی‌کنند.

پارامترهای پیش‌فرض

اگر در هنگام فراخوانی پارامترهاپارامترهای حذف شدهاگر (کمتر از تعداد مشخص شده)، مقادیر گم شده به:undefined.

گاهی اوقات این قابل قبول است، اما گاهی اوقات بهتر است که برای پارامترها مقادیر پیش‌فرض تعیین کنید:

مثال

function myFunction(x, y) {
    اگر (y === undefined) {
          y = 0;
    } 
}

سعی کنید خودتان امتحان کنید

اگر تعداد پارامترهای فراخوانی تابعتعداد پارامترها زیاد استاگر (بیشتر از تعداد مشخص شده)، می‌توان مجموعه‌ای از argumentsبرای دستیابی به این پارامترها استفاده می‌شود.

مجموعه‌ای از arguments

توابع جاوااسکریپت یک شیء داخلی به نام arguments دارند.

مجموعه‌ای از arguments شامل آرایه‌ای از پارامترهایی است که در زمان فراخوانی تابع استفاده می‌شوند.

به این ترتیب، شما می‌توانید به سادگی از تابع برای پیدا کردن (مثلاً) بیشترین ارزش لیست اعداد استفاده کنید:

مثال

x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
    var i;
    var max = -Infinity;
    for (i = 0; i < arguments.length; i++) {
        اگر (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}

سعی کنید خودتان امتحان کنید

یا یک توابع برای جمع همه ورودی‌ها ایجاد کنید:

مثال

x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
    var i, sum = 0;
    for (i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
}

سعی کنید خودتان امتحان کنید

پارامترها از طریق ارزش انتقال می‌یابند

پارامترهای درخواستی در فراخوانی توابع پارامترهای توابع هستند.

پارامترهای JavaScript از طریقارزش‌هابرای انتقال:

اگر توابع ارزش‌های پارامترها را تغییر دهند، آن‌ها نمی‌توانند تغییرات را در ارزش اصلی ایجاد کنند.

تغییرات در خارج از توابع قابل مشاهده نیستند.

اشیاء از طریق اشارات انتقال می‌یابند

در JavaScript، اشارات به اشیاء ارزش‌ها هستند.

به همین دلیل، رفتار اشیاء مانند این است که آن‌ها از طریقاشارهبرای انتقال:

اگر توابع ویژگی‌های اشیاء را تغییر دهند، آن‌ها همچنین تغییرات را در ارزش اصلی ایجاد می‌کنند.

تغییرات ویژگی‌های اشیاء در خارج از توابع قابل مشاهده است.