JavaScript که به اختصار JS نیز نامیده میشود، یکی از محبوبترین زبانهای برنامه نویسی است. جاوا اسکریپت زبانی سطح بالا، داینامیک، شیگرا و تفسیری است که از شیوههای مختلف برنامه نویسی پشتیبانی میکند. از این زبان میتوان برای برنامه نویسی سمت سرور (Server Side)، اپلیکیشنهای موبایل، بازی و اپلیکیشنهای دسکتاپ استفاده کرد. بنابراین میتوان اینگونه برداشت کرد که زبان برنامه نویسی جاوا اسکریپت ، یک زبان همه فن حریف است.
شی گرایی یک الگو و شیوه تفکر در برنامه نویسی است. رویکرد برنامه نویسی شی گرا از جزء به کل یا پایین به بالا است (Bottom-Up). یعنی در ابتدا واحدهای کوچکی از برنامه ایجاد میشوند و با پیوند این واحدهای کوچک به یکدیگر، واحدهای بزرگتر شکل میگیرند و به همین ترتیب برنامه کاملتر میشود. برنامه نویسی شی گرا دو مفهوم کلاس (Class) و شی (Object) را ارائه میدهد.
شی گرایی در برنامه نویسی میتواند مشکلات زیادی را برای شما حل کند و باعث سادهتر شدن فرآیند کدنویسی شود. از آنجایی که مفاهیم شی گرایی به شدت به دنیای واقعی نزدیک است، درک آن برای برنامه نویس آسان خواهد بود. در شی گرایی برخلاف روشهای کدنویسی دیگر مانند رویه ای به جای دست و پنجه نرمکردن با تعداد زیادی متغیر و توابع، مستقیما با اشیا (Objects) کار میکنید. برای درک بهتر این موضوع بهتر است با مثالی این مطلب را توضیح دهیم.
کارگاهی را در نظر بگیرید که دارای دستگاههای تولیدی مختلف است. این کارگاه را میتوان به عنوان یک کلاس در نظر گرفت. هر یک از این دستگاهها محصول متفاوتی تولید میکنند که میتوان آنها را به عنوان شی در نظر گرفت. اگر برای محصولات مشکلی پیش بیاید یا اگر بخواهیم تغییر در آنها ایجاد کنیم نیازی به تخریب و از نو ساختن کارگاه نیست.
به عنوان مثال اگر محصول خروجی کیک باشد، زمانیکه بخواهیم کیک شیرینتری داشته باشیم لازم نیست تغییری در کارگاه یا دستگاهها ایجاد کنیم، کافیست کمی شکر به خمیر کیک اضافه کنیم. این دقیقا همان اتفاقی است که در برنامه نویسی شی گرا میافتد.
پردازش و اجرای برخی زبانها بر روی سرور (سایت) صورت میگیرد و سپس نتیجه به سوی کاربر ارسال میشود. این زبانها برای برقراری ارتباط به نرمافزاری احتیاج دارند که به آن وب سرور گفته میشود. اما نکته جالبی که در مورد زبان JavaScript وجود دارد این است که از این زبان میتوان هم برای برنامه نویسی سمت سرور و هم سمت کاربر استفاده کرد. اما در گذشته قلمروی این زبان تنها به برنامه نویسی سمت کاربر محدود میشد. کدهای زبانهای برنامه نویسی سمت کاربر همانطور که از اسم آن مشخص است در سیستم کاربر پردازش و اجرا میشوند.
حال که آموختیم زبان جاوا اسکریپت چیست و چه کاربردهایی دارد، شاید این سوال برای شما پیش آمده باشد که جاوا اسکریپت چگونه در مرورگرهای مختلف اجرا میشود؟ جواب این سوال موتورهای پردازشی (Engine) هستند. مرورگرهای مختلف برای اجرای کدهای جاوااسکریپت از موتورهای مختلفی استفاده میکنند که در ادامه به برخی از آنها اشاره میکنیم.
این موتورها در ابتدا کدهای جاوا اسکریپت را ترجمه میکنند. سپس اسکریپتها را به زبان ماشین کامپایل میکنند تا در نهایت کدها اجرا شوند. البته این موضوع به این معنی نیست که زبان جاوا اسکریپت تنها بر روی مرورگرهای وب اجرا میشود. این زبان برنامه نویسی تقریبا بر روی تمام پلتفرمها با استفاده از JavaScript Virtual Machine قابل اجرا است.
دنیای توسعه بازی هم فضای دیگری است که کاربرد جاوا اسکریپت در آن حسابی به چشم میآید، خصوصا بازیهای موبایل و تحت وب. در حال حاضر انبوهی موتور بازیسازی مبتنی بر جاوا اسکریپت داریم که میتوانید از گیتهاب به آنها دسترسی پیدا کنید. از برجستهترین موارد میشود به Phaser ،Pixi.js ،melonJS ،kiwi.js و Three.js اشاره کرد.
این موتورها فرایند بازیسازی را سریعتر و آسان میکنند و قابلیتهای اضافه مانند فیزیک و انیمیشن را نیز در اختیارتان میگذارند. ناگفته نماند که بسیاری از وبسایتهای معروف بازیهای تحت وب مانند 1001Games و Miniclip انبوهی بازی متکی بر جاوا اسکریپت دارند.
از جاوا اسکریپت هم در ساخت بازیهای دوبعدی و هم بازیهای سهبعدی استفاده میشود. علاوه بر این میتوانید از فریمورکهای مختلف جاوا اسکریپت برای ساخت بازی موبایل یا حتی دسکتاپ کمک بگیرید. برخی از معروفترین بازیهایی که به این زبان نوشته شدهاند، Tower Building ،2048 ،Bejeweled و Words with Friends نام دارند.
از جاوا اسکریپت برای ساخت اپلیکیشنهای تکصفحهای (Single Page Applications | SPA) نیز استفاده میشود. SPA در واقع وب اپلیکیشنی است که تنها یک صفحه مبتنی بر HTML را به نمایش درمیآورد و محتوا براساس تعاملات کاربر با صفحه بهروزرسانی میشود. SPAها معمولا با فریمورکهای جاوا اسکریپت مانند AngularJS یا React و یا Vue.js ساخته میشوند. جیمیل، گوگل مپس و Airbnb از مشهورترین اپلیکیشنهای تکصفحهای امروزی به حساب میآیند.
اما نقش و کاربرد جاوا اسکریپت در توسعه SPA دقیقا چیست؟ Angular.js به عنوان مثال فریمورکی در سمت سرور است که انقیاد داده دوطرفه (Bidirectional Data Binding) را امکانپذیر میکند. به کمک انقیاد داده، هر زمان که مدلها تغییر میکنند، صفحه پیش روی کاربر نیز بهروزرسانی میشود. AngularJS ضمنا میتواند هم کنترلر و هم مدل را درون مرورگر کاربر نگه دارد.
ReactJS هم یکی دیگر از فریمورکهایی است که در ساخت اپلیکیشنهای تکصفحهای کاربردی ظاهر میشود. از جمله مزایای این فریمورک میتوان به موارد زیر اشاره کرد:
از جاوا اسکریپت برای ساخت رابطهای کاربری و وب اپلیکیشنهای گوناگون استفاده میشود. کتابخانههایی مانند jQuery نیز ساختن عناصر تعاملی مختلف مانند منوهای کشویی، آکاردئونها و مدلها را آسان میکنند.
برخی از مهمترین عناصری که میشود با جاوا اسکریپت پیادهسازی کرد را در ادامه آوردهایم:
در مجموع اگر بخواهید تجربه کاربری وبسایت خود را به شکل چشمگیری بهبود دهید، باید به سراغ جاوا اسکریپت و رابط کاربری تعاملی بروید.