functions در جاوا اسکریپت




سلام سلام ما هپی لرن هستیم و شما دارید دومین پستمون رو از سایت ویرگول می‌خونید. ?

خوش اومدید به اولین پست آموزشی هپی لرن :)

تو این پست قراره یکی از سوال هایی که تو مصاحبه ها از افراد پرسیده میشه رو باهم بررسی کنیم

پس ،بزن بریم?

توابع در جاوا اسکریپت با کلیدواژه ی function تعریف میشن و دو نوع اصلی دارن:

Function Declaration

Function Expression

حالا بیاید دربارشون بیشتر بحث کنیم.!


Function declaration

کلا توابع با ساختار زیر تعریف میشن:

function functionName(parameters) { 
// کد های مورد نظر شما برای اجرا در تابع}

این دسته از توابع به صورت خودکار اجرا نمیشن.

بلکه باید اون هارو فراخوانی کنیم (همون صدا زدن خودمون) که انگلیسی ها بهش میگنinvoke کردن.

ینی چجوری؟

اینطوری :)

const x = myFunction(4, 3);

بریم سراغ نوع بعدی تعریف کردن توابع

Function Expression

یه راه دیگه برا تعریف توابع در جاوا اسکریپت، تعریف کردن اون ها از طریق expretion هست.یعنی این دسته از توابع تو یه متغیر ذخیره میشن .

const functionName = function (parameters){
// کد های مورد نظر شما برای اجرا در تابع};

حالا خروجی این ها رو چطوری میبینیم؟

اینطوری

Myfunction(4,3);

❗راسی یه نکته بتون بگم

وقتی اینطوری توابع رو تعریف میکنید، باید اول تابع تعریف بشه و بعد زیر اون، از تابع استفاده کنید!!( مبحث hoisting که شاید بعدا مفصل تر براتون بگیم)


Arrow Function

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

const functionName = (parameters) => {
// کد های مورد نظر شما برای اجرا در تابع};

خب بریم سراغ روش بعدی تعریف توابع که اسمش هست

Self-Invoking

یعنی خودشون، خودشون رو فراخوانی میکنند و نیازی به صدا زده شدن و فراخوانی جداگانه نداشته باشن

چطوری؟

اینطوری:

(function () {
// کد های مورد نظر شما برای اجرا در تابع;
})();

واما اخرین نوع از تعریف کردن توابع که باهم اینجا بررسی میکنم:

Function() Constructor

توی این روش از Constructor استفاده میکنیم.

ینی چطوری؟

بزار با مثال بگیم این یکیو

const myFunction = new Function(&quotx&quot, &quoty&quot, &quotreturn x + y&quot);


خب مطلب ما به سر رسید ،هپی لرن به آخر نرسید?

منتظر نظرات و پیشنهادات شما هستیم،شما هم منتظر پست های بعدی ما باشید?