فکر می کنید جاوااسکریپ بلدید؟

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

const reverseArray = (arr) => {
let newArr = [];
for (let i = 0; i < arr.length; i++) {
newArr.push(arr[arr.length - 1 - i]);
}
return newArr;
}
const makeArrayReverse = arr => {
arr = reverseArray(arr);
console.log(arr);
}

let myArray = [1, 2, 3];
makeArrayReverse(myArray);
console.log(myArray);


سعی کنی حدس بزنید خروجی های این برنامه چه چیز هایی هست. اگر شما هم مثل من از این اشتباه های ساده دارید نگران نباشید. من حدود شش ساله که دارم فقط با جاوااسکریپت کار می کنم و هنوز هم خیلی از رفتار های جاوااسکریپت رو درک نمی کنم. علتش هم این میدونم که در برنامه های واقعی کمتر با این مسایل رو به رو می شم بنابراین آمادگی مواجه شدن با اونها رو ندارم. چند سال پیش یک کتاب به دست من رسید که کمکم کرد متوجه بشم خیلی چیز های دیگه هم هست که هنوز بلد نیستم. این کتاب مناسب کسایی که برنامه نویسی بلد نیستن یا با جاوااسکریپت کار نکردن نیست و فقط به درد کسایی می خوره که می خوان دانش جاوااسکریپت خودشون رو در زمان کمی بالا ببرن. این کتاب اوپن سورس و رایگانه و کل مطالب رو در غالب مثال به شما آموزش می ده. اسم اسم این کتاب "Eloquent JavaScript" هست و می تونید خوندن اون رو به صورت رایگان از پایین این صفحه eloquentjavascript.net شروع کنید.
ابتدای کتاب بسیار ساده هست و توصیه می کنم فریب سادگیش رو نخورید چون این کتاب حتی می تونه برای کسانی که سالها با این زبان کار کردن چالش بر انگیز باشه. در حین این که این کتاب رو مطالعه می کنید می تونید یه سری هم به وب سایت jstherightway.org بزنید. این سایت یک منبع بی پایان از سرفصل هایی هست که یک جاوااسکریپت کار با تجربه می تونه یاد بگیره. بعد از اون خوندن idiomatic.js خالی از لطف نیست. این مجموعه به شما کمک می کنه عادت های غلط کدنویسیتون رو کنار بگذارید. البته من بیشتر دوست دارم این ترک عادت رو از طریق استفاده از لینتر کانفیگ شده و در حین کار انجام بدم که برای اون eslint-config-airbnb - npm رو پیشنهاد می کنم.

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