This is a draft cheat sheet. It is a work in progress and is not finished yet.
Async & Await
زمانی که لازم است برای رسیدن پاسخی از سمت سرور صبر کند؛ عملیات ناهنگام است
Callback
یکی از رایجترین و قدیمیترین راههای مدیریت عملیات ناهمگام استفاده از توابع کالبک هست
وقتی عملیات ناهمگام به پایان رسید، نتیجهی این عملیات برای پردازش میتونه به یک تابع فرستاده بشه که به این تابع میگن کالبک.
|
Callback
خب اینجا یکم کار سخت میشه. چون وقتی یک یا چند تابع کالبک درون هم دیگه قرار میگیرن، علاوه بر اینکه ساختار کدهای ما زشت میشن، کدها تو در تو میشن و کار با اطلاعات و متغیرها و نهایتا مدیریت کد سخت میشه که به این قضیه میگن جهنم کالبک
(Callback Hell)
|
|
|
Closure
function init() {
var counter = 0;
function jump_counter() {
counter++;
return counter;
}
return jump_counter;
}
var jump = init();
jump();
jump();
jump();
کلاژر، یک تابعی هست که توی یک تابع دیگه تعریف میشه که میتونه علاوه بر متغیرهای حوزهی خودش، به متغیرهای حوزهی تابع بیرونی هم دسترسی داشته باشه.
|
this
فقط نحوهی فراخوانی اون تابع هست که مقدار دیس رو تعیین میکنه. |
this
var name = "David";
var person = {
name: "Ali",
getName: function() {
console.log(this.name);
}
}
var getName = person.getName;
getName(); // David
person.getName(); // Ali
|
Call() & Apply()
توی کال پارامترها رو باید بصورت تک تک پاس بدیم و توی اپلای میشه بصورت آرایه پاس داد.
|
this
"use strict";
در این حالت دیس دیگر گلوبال نیس و آندیفاین است
------------------------------------------
Arrow Function
مقدار دیس توی توابع معمولی به آبجکتی اشاره میکنه که داره اون تابع رو اجرا میکنه. اما توی ارو فانکشن ها مقدار دیس به صاحب (حوزه) آبجکتی اشاره میکنه که ارو فانکشن توی اون تعریف شده
|
|