برنامه نویسی

درک توابع: از مبانی گرفته تا شیوه های رمزگذاری بهتر

توابع یکی از مهمترین ابزارهای برنامه نویسی جاوا اسکریپت است. ما می توانیم یک عملکرد را یک بار تعریف کنیم و بدون تکرار از آن استفاده کنیم. توابع را می توان به راحتی اصلاح کرد و می توان آنها را از یکدیگر جدا کرد.

نحو:

function name (param1, param2, ...paramN) {}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

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

متغیرهای بیرونی (اعلام شده در خارج از عملکرد): در صورت استفاده از آنها در عملکرد ، توابع می توانند به این متغیرهای بیرونی دسترسی پیدا کنند. با این حال ، معکوس درست نیست – شما نمی توانید به متغیرهایی که در داخل عملکرد از خارج از آن اعلام شده اند ، دسترسی پیدا کنید.

-> متغیرهای داخلی می توانند به متغیرهای بیرونی دسترسی پیدا کنند.
-> متغیرهای داخلی خود از خارج از عملکرد در دسترس نیستند.

نامگذاری کنوانسیون
نام عملکرد باید شامل پیشوندهایی باشد که توصیف می کنند که عملکرد چه کاری انجام می دهد ، معمولاً افعال که عملکرد را توضیح می دهند.

آموزش مدرن JavaScript چند نمونه را ارائه می دهد:

showMessage(..)     // shows a message 
getAge(..)          // returns the age (gets it somehow) 
calcSum(..)         // calculates a sum and returns the result 
createForm(..)      // creates a form (and usually returns it)
checkPermission(..) // checks a permission, returns true/false
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آموزش مدرن JavaScript

هر عملکرد باید یک کار انجام دهد ، نه بیشتر.
به عنوان مثال ، getAge عملکرد فقط باید سن را بدست آورد — سن را بدست آورید و آن را نشان دهید.

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

function square(number) {
  return number * number;
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مگد

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

const square = function (number) {
  return number * number;
};
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مگد

عملکرد با () و بدون ()
در JavaScript ، یک تابع یک مقدار است. بنابراین ، هنگامی که ما به یک عملکرد با نام آن بدون پرانتز مراجعه می کنیم ، ما به مقدار آن دسترسی پیدا می کنیم ، که خود عملکرد (کد منبع آن) است.
مثال:

function sayHi() { 
    alert( "Hello" ); 
} 

alert( sayHi ); // shows the function code
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آموزش مدرن JavaScript

این زمانی مفید است که ما می خواهیم تابع را روی متغیر دیگری کپی کنیم یا آن را به عنوان یک پارامتر منتقل کنیم.

از کدام استفاده می شود؟
مطابق آموزش مدرن JavaScript، اعلامیه عملکرد به دلایل زیر نسبت به یک بیان عملکرد ارجح است:

  1. قبل از اعلام آن قابل مشاهده است
  2. برای سازمان کد انعطاف پذیرتر است
  3. قابل خواندن تر است

مزایای کد شفاف و توصیفی
نوشتن کد شفاف و توصیفی با توابع تعریف شده ، درک آن را آسانتر می کند و احتمال شکستن آن کمتر است. بنابراین ، حتی اگر مثال دوم حاوی کد بیشتری باشد ، ساختار آن به درستی آسانتر می شود.

let total = 0, count = 1;
while (count <= 10) {
  total += count;
  count += 1;
}
console.log(total);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در مقابل

console.log(sum(range(1, 10)));
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مثال دوم بهتر است زیرا توصیفی تر است.
جاوا اسکریپت فصیح

توابع مرتبه بالاتر
توابع مرتبه بالاتر توابع هستند که عملکرد دیگری را به عنوان یک پارامتر در نظر می گیرند یا یک عملکرد را در نتیجه باز می گردانند. این امکان پذیر است زیرا توابع مقادیر هستند.

توابعی که عملکرد دیگری را به عنوان یک پارامتر در نظر می گیرند:

function repeat(n, action) {
  for (let i = 0; i < n; i++) {
    action(i);
  }
}

repeat(3, console.log);
// → 0
// → 1
// → 2
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

توابعی که یک تابع را به عنوان یک مقدار بازگشت باز می گردانند:

function greaterThan(n) {
  return m => m > n;
}
let greaterThan10 = greaterThan(10);
console.log(greaterThan10(11));
// → true
console.log(greaterThan10(9));
// -> false
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

جاوا اسکریپت فصیح

توابع کاربردهای زیادی دارند و اطلاعات بیشتری در مورد آنها وجود دارد. من در حالی که من همچنان در مورد JavaScript می آموزم ، توابع را مجدداً مورد بررسی قرار می دهم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا