✨ توجه: تمرینات دوره، در مخزن گیت سکان آکادمی بارگذاری شدهاند و شما میتوانید به راحتی به آنها دسترسی داشته باشید و کدهای خود را با کدهای مدرس دوره مقایسه کنید. برای مشاهده مخزن میتوانید اینجا کلیک کنید.
جاوااسکریپت چیست؟
جاوا اسکریپت یک زبان اسکریپتی است. کدهای JavaScript درون یک فایل متنی نوشته میشوند؛ به این کدها «اسکریپت» گفته میشود. این فایل با یک فرمت مشخص ذخیره میشود که برای JavaScript پسوند .js است.
این فایل اسکریپت برای اجرا شدن، به یک مفسر JavaScript سپرده میشود. مفسر در هر بار اجرای اسکریپت، کدها را تفسیر کرده و برای کامپیوتر قابل فهم میکند. این شیوه، تعریفی ساده از زبانهای اسکریپتی و نحوه عملکرد آنهاست.
کاربرد جاوا اسکریپت
جاوا اسکریپت زبان برنامهنویسی مخصوص وب است. اصلیترین کاربرد آن در توسعه وبسایتها و وباپلیکیشنها است. در مرحله اول، اسکریپتهای این زبان در مرورگرهای وب اجرا میشوند و مهمترین محیط اجرای آنها مرورگرهایی مانند Google Chrome، Firefox، Safari و حتی Internet Explorer هستند.
محبوبیت جاوا اسکریپت
جاوا اسکریپت یکی از محبوبترین و پرکاربردترین زبانهای برنامهنویسی در دنیا است و در عین حال، یادگیری نسبتاً سادهای دارد.
برای نمونه، طبق یک نمودار مربوط به محبوبترین زبانهای برنامهنویسی میان کاربران GitHub در سال ۲۰۲۰، JavaScript بیشترین امتیاز را کسب کرده است. همچنین بر اساس آمار منتشرشده از سایت Statista، JavaScript در سال ۲۰۲۱ بهعنوان پرکاربردترین زبان برنامهنویسی میان توسعهدهندگان جهان معرفی شده است.
تاریخچه جاوا اسکریپت
نخستین نسخه جاوااسکریپت در سال ۱۹۹۵ معرفی شد. هدف از ایجاد این زبان، افزودن رفتارهای تعاملی به صفحات وب بود. بهعبارت دیگر، در کنار HTML که ساختار یک وبسایت را تعیین میکند و CSS که ظاهر و سبک آن را مشخص میسازد، جاوا اسکریپت معرفی شد تا امکان تعریف رفتار و تعامل سایت با کاربر فراهم شود.
در سال ۱۹۹۷ زبان جاوا اسکریپت توسط سازمانی با نام ECMA International استاندارد شد. نسخه استانداردشده این زبان با عنوان ECMAScript معرفی شد و این نام، نسخه رسمی و استاندارد JavaScript محسوب میشود
از آنجا که JavaScript قرار بود روی تمام مرورگرهای وب اجرا شود و مرورگرهای مختلفی توسط شرکتهای گوناگون وجود داشت، توسعهدهندگان باید زبانی با استاندارد مشخص در اختیار میداشتند تا اسکریپتهای آنها روی همه مرورگرها رفتاری یکسان و قابل پیشبینی داشته باشد.در سالهای مختلف، سازمان ECMA بهروزرسانیها و اصلاحاتی روی ECMAScript انجام داده و نسخههای جدیدی منتشر کرده است. هر نسخه دارای نام و شماره مشخصی است و امکانات جدیدی به زبان جاوا اسکریپت اضافه میکند.
نسخه ششم ECMAScript، که به اختصار ES6 و جدیداً با نام ECMAScript 2015 شناخته میشود، تحولی بزرگ در دنیای JavaScript ایجاد کرد. تغییرات و اصلاحات این نسخه به قدری گسترده و مؤثر بود که ES6 به دومین بازنگری مهم ECMAScript تبدیل شد.
از سال ۲۰۱۵ به بعد، مرورگرها شروع به سازگاری با این استاندارد جدید کردند. برای مثال، مرورگرهایی مانند Chrome 58 به بعد و Safari 10 به بعد از تمام قابلیتهای ES6 پشتیبانی کامل میکنند.
کاربردهای جاوا اسکریپت
توسعه وبسایتها و وباپلیکیشنها
اصلیترین کاربرد جاوا اسکریپت همانطور که میدانید، برنامهنویسی و توسعه وبسایتها و وباپلیکیشنها است. اگر بخواهیم یک وبسایت ساده را توصیف کنیم، میتوان آن را به دو بخش اصلی تقسیم کرد:
- نمایش و تعامل با کاربر: بخشی که کاربر آن را مشاهده میکند، داده دریافت میکند و دادهای را مشاهده یا ارسال میکند.
- ساختار و ظاهر وبسایت: بخشی که ساختار و نمای سایت را شکل میدهد.
در اینجا نقش هر زبان برنامهنویسی به صورت زیر است:
- HTML : ساختار ظاهر سایت را ایجاد میکند.
- CSS : ظاهر و سبک سایت را مشخص میکند.
- JavaScript : عملکرد و تعاملات سایت را بر عهده دارد؛ یعنی رفتار سایت در ارتباط با کاربر را مدیریت میکند.
کتابخانهها و فریمورکها در جاوا اسکریپت
کتابخانهها
در برخی موارد، سازمانها و توسعهدهندگان برای کاربردهای مشخص، مجموعهای از اسکریپتهای آماده را توسعه میدهند تا برنامهنویسان بتوانند از آنها استفاده کنند و نیازی به نوشتن همه بخشهای برنامه از ابتدا نداشته باشند. این کار باعث میشود توسعه برنامه سریعتر، قابل اعتمادتر و سادهتر انجام شود.
به این مجموعههای آماده، کتابخانه (Library) گفته میشود. کتابخانههای برنامهنویسی، مجموعهای از اسکریپتهای آماده هستند که توسط دیگران توسعه یافته و در اختیار توسعهدهندگان قرار میگیرند تا به کمک آنها برنامه خود را تکمیل کنند.
فریمورکها
مفهوم دیگری که در کنار کتابخانهها مطرح است، فریمورک (Framework) است. فریمورک را میتوان اینگونه تعریف کرد:
یک چهارچوب برنامهنویسی که به توسعهدهنده کمک میکند محصول خود را بهصورت نظاممند و با ساختار مشخص ایجاد کند.
فریمورکها معمولاً مبتنی بر یک زبان برنامهنویسی خاص هستند؛ برای مثال، فریمورکهای جاوا اسکریپت بر پایه زبان جاوا اسکریپت توسعه یافتهاند.
نمونههای معروف کتابخانهها و فریمورکهای فرانتاند از جمله مشهورترین کتابخانهها و فریمورکهای جاوا اسکریپت میتوان به موارد زیر اشاره کرد:
- کتابخانه React
- فریمورکها: Angular ، Vue.js
این سه مورد، پایهای برای توسعه فرانتاند هستند و توصیه میشود توسعهدهندگان با کاربردها، تفاوتها و میزان استفاده از آنها آشنا شوند.
کاربردها در سمت سرور، موبایل و بازیسازی
وبسایتها از دو بخش اصلی تشکیل شدهاند: سمت کاربر (Front-end) و سمت سرور (Back-end). سمت سرور بخشی است که دادههای دریافتشده از کاربر را پردازش میکند، با سایر سرورها و پایگاههای داده ارتباط برقرار میکند و عملکردهای متنوع دیگری را انجام میدهد.
در گذشته، JavaScript تنها قابلیت اجرا روی مرورگرها را داشت و نمیتوانست سمت سرور فعالیت کند. اما با توسعه محیطی به نام Node.js، امکان برنامهنویسی به JavaScript در سمت سرور فراهم شد.
Node.js یک Runtime Environment است که به توسعهدهندگان اجازه میدهد بدون نیاز به مرورگر، اسکریپتهای JavaScript را اجرا کنند و برنامههای سمت سرور را توسعه دهند.
توسعه نرمافزارهای موبایل با React Native
یکی دیگر از کاربردهای جاوا اسکریپت ، توسعه نرمافزارهای موبایل است. فریمورک React Native به توسعهدهندگان امکان میدهد با استفاده از جاوا اسکریپت ، یک برنامه موبایل بنویسند که هم روی Android و هم Ios اجرا شود. این قابلیت، سرعت توسعه و بازدهی بالای پروژههای موبایل را تضمین میکند و دلیل اصلی محبوبیت React Native است.
توسعه بازیهای کامپیوتری
جاوا اسکریپت همچنین در توسعه بازیهای کامپیوتری کاربرد دارد. برای ایجاد گرافیک و رابطهای تعاملی بازی، از قابلیتهای جاوا اسکریپت در ترکیب با Canvas در HTML5 استفاده میشود. این ترکیب امکان پیادهسازی نماها و تعاملات بصری جذاب در بازیها را فراهم میکند. به عنوان مثال، بازیهایی مانند "پل کرفت" (Pulkraft) با استفاده از JavaScript توسعه یافتهاند و نمونهای از قابلیتهای این زبان در بازیسازی محسوب میشوند.

تولیدات گرافیکی و انیمیشن
یکی دیگر از کاربردهای جاوا اسکریپت در تولید گرافیک و انیمیشنهای تعاملی است. مشابه بازیسازی، برای این منظور از قابلیتهای Canvas در HTML5 استفاده میشود. همچنین، کتابخانههایی مانند p5.js امکان ایجاد تصاویر و جلوههای گرافیکی متنوع را فراهم میکنند. به کمک این کتابخانهها میتوان آثار گرافیکی پیچیده و تعاملی تولید کرد.
یادگیری ماشین
جاوا اسکریپت امروزه در حوزه یادگیری ماشین نیز کاربرد دارد. یکی از مهمترین کتابخانهها در این زمینه، TensorFlow.js است که مبتنی بر جاوا اسکریپت عمل میکند و امکان توسعه مدلهای یادگیری ماشین در محیط وب را فراهم میکند.
توسعه بلاکچین
جاوا اسکریپت در زمینه بلاکچین نیز استفاده میشود. از جمله کتابخانههای مهم در این حوزه میتوان به موارد زیر اشاره کرد:
- ethers.js : بستری برای برنامهنویسی و تعامل با بلاکچین اتریوم فراهم میکند.
- web3.js : مجموعهای از کتابخانهها که امکان توسعه و تعامل با شبکههای بلاکچین را فراهم میکنند.
این کتابخانهها به توسعهدهندگان اجازه میدهند پروژههای بلاکچینی را بهسادگی و با ساختار مشخص پیادهسازی کنند.
دلیل توصیه به یادگیری جاوا اسکریپت
یکی از دلایل اصلی توصیه به یادگیری جاوا اسکریپت ، گستردگی بازار کار و نیاز روزافزون به توسعه وبسایتها و نرمافزارهای موبایلی است.
علاوه بر این، جاوا اسکریپت امکان ارائه راهکارهای جامع در توسعه وب را فراهم میکند؛ به این معنا که با این زبان میتوان هم سمت کاربر (Front-end) و هم سمت سرور (Back-end) را توسعه داد و تجربه کامل و یکپارچهای برای کاربران ایجاد کرد.
از سوی دیگر، کاربردهای گسترده و متنوع این زبان، مخاطب را ترغیب میکند تا آن را یاد بگیرد و در حوزههای مختلف برنامهنویسی فعالیت کند.
تمرین
در پایان هر جلسه، تمرینهایی ارائه میشود که توصیه میکنم حتماً انجام دهید، زیرا تمرین عملی به تثبیت مفاهیم و افزایش مهارت شما کمک زیادی میکند. تمرین این جلسه به شرح زیر است:
ما در این جلسه به صورت کلی درباره ساختار وبسایت صحبت کردیم، اما فرصت نشد جزئیات کامل را بررسی کنیم. پیشنهاد میکنم مقالهای با عنوان «یک وبسایت از چه بخشهایی تشکیل شده است» را در سایت سکان آکادمی مطالعه کنید. این مقاله دید دقیقتری نسبت به بخشها و ساختار وبسایتها به شما ارائه میدهد.
جمع بندی
در این دوره با مفاهیم بنیادین جاوااسکریپت، تاریخچه و استاندارد ECMAScript و همچنین نقش این زبان در توسعه وب آشنا شدیم. کاربردهای گسترده جاوااسکریپت در فرانتاند، بکاند، موبایل، گرافیک، بازیسازی، یادگیری ماشین و بلاکچین بررسی شد و تفاوت کتابخانهها و فریمورکهای مهم مانند React، Angular و Vue توضیح داده شد. در نهایت، مخاطب میآموزد چگونه با اتکا به اصول مطرحشده و تمرینهای عملی، پروژههای واقعی جاوااسکریپتی را پیادهسازی کرده و مسیر یادگیری خود را حرفهایتر ادامه دهد.


