به آموزشگاه مجازی سینا خوش آمدید!

آرگومان‌های تابع در جاوا اسکریپت

امتیاز
(0)

مقایسه پارامترها و آرگومان ها

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

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

آرگومان ها مقادیر حقیقی هستند که پاس داده می شوند و توسط تابع دریافت می شوند. 

مثال شماره 1

function multiply(a, b) {
  return a * b;
}

let result = multiply(4, 5);
امتحان کنید

در مثال بالا:

a و b پارامتر هستند. 

و 4 و 5 آرگومان هستند. 

آرگومان 4 در پارامتر a قرار دارد . 

آرگومان 5 در پارامتر b قرار دارد. 


استفاده از آبجکت arguments در جاوا اسکریپت

تابع های جاوا اسکریپت یک آبجکت درونی به نام arguments دارند. 

آبجکت arguments حاوی یک آرایه از آرگومان هایی است که وقتی تابع فراخوانی می شود، مورد استفاده قرار می گیرند. 

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

مثال شماره 2

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {
  let max = -Infinity;
  for (let i = 0; i < arguments.length; i++) {
    if (arguments[i] > max) {
      max = arguments[i];
    }
  }
  return max;
}
امتحان کنید

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

مثال شماره 3

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {
  let sum = 0;
  for (let i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
}
امتحان کنید

نکته: اگر یک تابع با آرگومان های زیادی فراخوانی شود(بیش از مقدار اعلام شده) می توانیم با استفاده از آبجکت arguments به این آرگومان ها دسترسی پیدا کنیم:


ترتیب آرگومان ها مهم است

آرگومان ها، به همان ترتیبی که ارائه شده اند به پارامترها انتساب داده می شوند. 

مثال شماره 4

function subtract(a, b) {
  return a - b;
}

let x1 = subtract(10, 5);
let x2 = subtract(5, 10);
امتحان کنید

دو فراخوانی بالا، نتایج متفاوتی ایجاد می کنند زیرا ترتیب های آرگومان ها متفاوت هستند. 


آرگومان ها می توانند متغیر باشند

آرگومان‌ها مجبور نیستند حتما مقدار(value) باشند. آنها می‌توانند متغیر نیز باشند. 

مثال شماره 5

let x = 5;
let y = 6;

function multiply(a, b) {
  return a * b;
}

multiply(x, y);

قوانین آرگومان ها

تعاریف تابع ها در جاوا اسکریپت، نوعِ داده ها را برای آرگومان ها مشخص نمی کنند. 

تابع های جاوا اسکریپت، روی آرگومان های پاس داده شده، بررسیِ نوع(type checking) انجام نمی دهند. 

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


آرگومان های نادرست

آرگومان های نادرست، می توانند پاسخ های نادرستی را برگردانند:

مثال شماره 6

function toCelsius(fahrenheit) {
  return (5/9) * (fahrenheit-32);
}

let value = toCelsius("John");
امتحان کنید

مفقود شدن آرگومان ها

اگر یک تابع، با تعداد آرگومان های کمتری نسبت به پارامترها فراخوانی شود، مقادیر مفقود شده برابر با undefined (تعریف نشده) خواهند بود. 

مثال شماره 7

function multiply(a, b) {
  return a * b;
}

multiply(4);

در مثال بالا، مقدار b برابر با undefined است، بنابراین نتیجه برابر با NaN است. 


یک تابعِ جاوا اسکریپت، روی مقادیر پارامترها(یعنی آرگومان ها) هیچ بررسی را انجام نمی دهد. 


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

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

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

مثال شماره 8

function myFunction(x, y) {
  if (y === undefined) {
    y = 2;
  }
}
امتحان کنید

مقادیر پیش فرض برای پارامترها

اکما اسکریپت 2015 به پارامترهای تابع امکان می دهد تا مقادیر پیش فرض داشته باشند. 

اکنون ما می توانیم یک مقدار پیش فرض را برای یک پارامتر تعریف کنیم. 

اگر هیچ پارامتری ارائه نشود، مقدار پیش فرض مورد استفاده قرار می گیرد. 

مثال شماره 9

اگر y پاس داده نشود یا undefined باشد، آنگاه y = 10 خواهد بود.

function myFunction(x, y = 10) {
  return x + y;
}
myFunction(5);
امتحان کنید

 

 

 

 

 

 


منبع: www.w3schools.com/js

 

  • بازدید: 13

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال