زبان Javascript چیست؟
جاوااسکریپت JavaScript به اختصار JS نوعی زبان برنامه نویسی است که با ویژگیهای ارائه شده در مشخصات اکمااسکریپت (ECMAScript) مطابق میباشد. جاوااسکریپت نوعی زبان سطح بالا، کامپایل درجا، و چندالگویی است. جاوااسکریپت نحو آکولادی دارد، نوع دهی آن پویا است، نوع شیءگرایی اش بر پایه پیش نمونه است، و دارای توابع کلاس اول میباشد. در کنار HTML و CSS، جاوااسکریپت یکی از فنآوریهای هستهای وب جهان گستر است.
علیرغم اشتباه عمومی، زبان جاوااسکریپت با زبان جاوا ارتباطی ندارد، دلیل این نام گذاری محبوبیت زبان جاوا در هنگام تولد جاوااسکریپت بود؛ اگر چه ساختار این زبان به ++C و #C شباهت دارد که این امر، برای یادگیری آسان در نظر گرفته شدهاست.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شیءگرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، بر خلاف جاوا. بعد از ساخته شدن یک شیء به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد. به همین دلیل زبان جاوااسکریپت برای ساختن نمونه از سیستم، مناسب است.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی بوده و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویانمایی در سمت کاربر، از این زبان استفاده میشود.
فلسفه تولید زبان Javascript
جاوااسکریپت را در ابتدا شخصی به نام برندان آیک در شرکت نتاسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوااسکریپت تغییر یافت. اولین نمونههای جاوااسکریپت در اواخر دهه 1990 برای مرورگر وب Netscape Navigator ایجاد شد. در آن زمان، صفحات وب ایستا بودند و تعامل کمی با کاربر، فراتر از کلیک کردن روی پیوندها و بارگیری صفحات جدید، ایجاد میکردند. برای اولین بار، جاوااسکریپت انیمیشن، محتوای تطبیقی و اعتبار سنجی فرم را در صفحه فعال کرد.
در روزهای اول خیلی از کاربران فکر میکردند جاوااسکریپت نسخه جدید زبان برنامه نویسی جاوا است.
به خاطر موفقیتهای زبان جاوااسکریپت، مایکروسافت مجبور شد در مرورگر خود یعنی اینترنت اکسپلورر از آن استفاده کند. یکی از دلایل موفقیت جاوااسکریپت در سالهای بعدی، پشتیبانی اینترنت اکسپلورر از این زبان بود.
مزایای زبان برنامه نویسی Javascript
با زبان برنامه نویسی Javascript چه کارهایی میتوانید انجام دهید؟
یکی از کاربردهای اصلی جاوا اسکریپت را میتوان در طراحی اپلیکیشنهای موبایل دانست. امروزه در طراحی اپلیکیشنهای موبایل نیز از جاوا اسکریپت بسیار استفاده میشود.
طراحان صفحات وب میتوانند با استفاده از Function ها و Object های آماده و از پیش تعریف شده جاوا اسکریپت قابلیتهای زیادی را برای صفحات وب ایجاد کنند. برای مثال:
قالب Html را طوری طراحی کنند که کاربران بتوانند خود اجزای صفحه وب مثل Background رنگ یا سایز لینک یا متن را داشته باشند.
میتوان با استفاده از کدهای گرافیکی انیمیشن ایجاد کرد و همچنین صفحاتی را طراحی کرد که کاربر به دلخواه قادر به جابجایی یا تغییر تصاویر گرافیکی باشد .
Event ها را کنترل کند و با جاوا و Plugin ها ارتباط داشته باشد.
فرمهای Clint-Side ایجاد کند و اطلاعات وارد شده توسط کاربر در فرمها را ارزیابی کند و در صورت وجود هرگونه خطایی در نحوه پر شدن آنها پیغام مناسب را نمایش دهد.
ذخیرهسازی مقادیر مفید درون متغیرها.
عملیات روی بخشهای مختلف متن که در برنامهنویسی، رشته (String) نامیده میشوند.
اجرای کد در پاسخ به رویدادهای خاصی که روی صفحه وب رخ میدهند.
فرصتهای شغلی زبان Javascript
اگر تا حدودی با زبانهای برنامه نویسی آشنایی داشته باشید حتما میدانید که چه طور سورس یک سایت را در مرورگر کروم یا فایرفاکس مشاهده کنید شاید غیر ممکن باشد در سورس یک وب سایت شما جاوا را پیدا نکنید این نشان دهنده اهمیت این زبان در دنیای وب است.
این فریمورکها به قدری کار را برای برنامه نویسان راحت کردهاند که برنامه نویس بتواند با یک زبان برنامه نویسی دو خروجی دریافت کند یک خروجی برای اندروید و یک خروجی برای IOS فقط کافیست شما کار با یک فریمورک را یاد بگیرید تا بتوانید اپلیکیشنهای اندروید و IOS را توسعه دهید.
ساخت برنامههای تحت دسکتاپ چه برای ویندوز و چه برای مک امکان پذیر است، ابزار electron.js این امکان را به برنامه نویسان جاوا میدهد که برنامههایی برای دسکتاپ طراحی و توسعه بدهند. همچنین نیاز شرکتها به برنامه نویسان جاوا روز به روز در حال افزایش است.
سایتهای زیادی در دنیا با nodejs طراحی و پیاده سازی شدهاند معروفترین این سایت ها Stackoverflow است در ایران هم سایت دیوار بخشهای عمدهای از سایت خود را با nodejs توسعه داده است بازار کار ایران برای نود جی اس خیلی داغ است و میتوانید با این فریمورک درآمد خوبی داشته باشید .
شما میتوانید پروژههای خود را آماده کنید یا پلاگینهایی که ایجاد میکنید در مارکتهای بزرگی که در خارج از کشور هستند برای فروش قرار دهید مارکتهایی مثل تم فارست یا کد کنیون بدون شک اگر پلاگین یا پروژه شما طرف دار زیادی داشته باشد میتوانید به دلار پول زیادی به دست بیاورید برای مثال به فروش طراح قالب آوادا در تم فارست نگاهی بیندازید.
در سالهای گذشته با وجود زبان برنامه نویسی php در ایران بازار کار جاوا اسکریپت جالب توجه نبود، به این علت که زبان جاوا بیشتر برای سمت کلاینت مورد استفاده قرار میگرفت نه سمت سرور. اما امروزه این مشکل برطرف شده و بازار کار این زبان هم رشد چشمگیری داشته است.
در حال حاضر با توجه به آمارهای موجود بسته به توانایی هر فرد میتوان عددی بین 3 میلیون تا 15 میلیون تومان را در یک ماه برای یک برنامه نویس جاوا اسکریپت در نظر گرفت حالا برنامه نویسانی هستند در ماه یک پروژه 50 یا 100 میلیونی هم میتوانند بگیرند همه چیز بستگی به خود شما دارد.
آمارهای زبان Javascript
در نمودارهای زیر مقایسه و میزان استفاده از زبان برنامه نویسی و اسکریپی را مشاهده مینمائید که زبان جاوااسکریپت با استفاده نزدیک به 70 درصدی در صدر نمودار حضور دارد.
همچنین در مقایسه بین JavaScript و TypeScript میتوانید تفاوت فاحش این دو را ببینید.
در جدول زیر مقایسه JavaScript با خانواده زبان C، جاوا و پایتون را مشاهده میکنید که جاوااسکریپت در طی سالها چه جایگاهی داشته و در سال 2021 در رتبه هفتم جدول قرار دارد.
در نمودار زیر فریمورکهای زبان JavaScript، میزان استفاده و تغییرات آنها را مشاهده مینمائید.
همچنین محبوبترین فریمورکها به همراه درصد آنها در زیر قابل رویت میباشد.
ورژنهای زبان Javascript
در سال 1996 شرکتهای Netscape و Sun Microsystems تصمیم گرفتند تا با همکاری سازمان استانداردسازی Ecma International استانداردی را برای جاوا اسکریپت تهیه کنند. این استاندارد برای جلوگیری از نقض کپی رایت علامت تجاری Java که در مالکیت شرکت Sun بود، ECMAScript نامگذاری شد. این موضوع کمی باعث سردرگمی افرادی میشود که قصد شروع کار با جاوا اسکریپت را دارند و معمولاً تفاوت بین ECMAScript و JavaScript برای افراد مبتدی قابل درک نیست. البته به مرور زمان این سردرگمی رفع خواهد شد. اما به طور خلاصه باید گفت ECMAScript یک استاندارد است که یک زبان برنامهنویسی با ویژگیهایی خاص را توصیف میکند. و JavaScript یک نمونه از ECMAScript یا یک پیادهسازی ECMAScript است. هر شخص یا سازمانی میتواند یک زبان برنامهنویسی مبتنی بر استاندارد ECMAScript ایجاد کند و نام دلخواه خود را برای آن انتخاب کند. مثلاً یکی دیگر از زبانهای برنامهنویسی نسبتاً مشهور و مبتنی بر ECMAScript، زبان ActionScript است که در نرمافزار Flash کاربرد دارد. البته باید توجه کرد که هرچند JavaScript و ActionScript هر دو مبتنی بر استاندارد ECMAScript هستند، اما زبانهای یکسانی نیستند.
در واقع باید گفت که یک زبان برنامهنویسی مبتنی بر ECMAScript، میتواند ویژگیهایی را بنا به نیاز خود به آن اضافه کند. نکته مهم این است که باید تمام ویژگی موجود در استاندارد ECMAScript در زبان مذکور پیادهسازی شود. اما محدودیتی برای اضافه کردن امکانات و ویژگیهای جدید وجود ندارد. جاوا اسکریپت ویژگیهای زیادی دارد که جزئی از استاندارد ECMAScript نیستند و با توجه به نیاز محیط برنامهنویسی (یعنی محیط وب یا مرورگر)، به آن اضافه شدهاند.
در حالت ایدهآل، انتظار داریم که برنامههای نوشته با جاوا اسکریپت در تمام مرورگرها به یک شکل اجرا شوند. چرا که تمام مرورگرها از ECMAScript پیروی میکنند. اما متاسفانه همیشه اینطور نیست و بعضا مرورگرها در پیادهسازی برخی از ویژگیهای این زبان موفق عمل نمیکنند. البته میزان این ناسازگاریها بسیار کم بوده و به مرور زمان نیز در حال کمتر شدن است.
اولین نسخه از استاندارد ECMAScript در سال 1997 منتشر شد. یک سال بعد نسخهی دوم با تغییراتی جزئی منتشر شد و در سال 1999 نسخهی سوم این استاندارد با اضافه شدن چند ویژگی جدید منتشر شد. سپس کار بر روی نسخهی چهارم این استاندارد شروع شد. اما اختلافات زیادی برای استانداردسازی این نسخه به وجود آمد. چرا که برخی معتقد به اضافه کردن ویژگیهای قدرتمند و پیچیده به ECMAScript بودند. و برخی برای جلوگیری از پیچیده شدن زبان و همچنین پیچیدگی پیادهسازی مفسر برای این زبان، معتقد به افزودن ویژگیهای کم و ساده بود. در نهایت این اختلافات منجر به کنار گذاشتن نسخهی چهارم شد. یعنی هیچگاه نسخهی چهارم برای ECMAScript منتشر نشد. پس از مدتی کار بر روی نسخهی پنجم آغاز شد و ECMAScript 5 سرانجام در سال 2009 با تغییراتی نه چندان زیاد نسبت به ECMAScript 3 منتشر شد.
بعد از انتشار ECMAScript 5 یا به اختصار ES5، کار بر روی نسخهی بعدی استاندارد با اسم رمز “Harmony” آغاز شد. این نسخه شامل بسیاری از ویژگیهای قدرتمندی میشد که قبلاً برای ES4 در نظر گرفته شده بودند، اما هیچگاه به سرانجام نرسیده بودند. همچنین ویژگیهای جدید دیگری نیز برای این نسخه در نظر گرفته شده بود که همین امر موجب طولانی شدن زمان نهاییسازی این استاندارد، علیرغم تلاشهای بسیار شد. در نهایت پس از 6 سال در سال 2015 استاندارد نهایی ECMAScript 6 یا ES6 با نام رسمی ECMAScript 2015 منتشر شد.
پس از آن تصمیم گرفته شد که به جای اینکه هر چند سال، یک نسخهی جدید از این استاندارد با تغییرات زیاد نسبت به نسخهی قبل منتشر شود، هر سال در ماه ژوئن یک نسخهی جدید با تغییرات جزئی منتشر شود. و تا امروز به این وعده وفا شده است و در ماه ژوئن سالهای 2016، 2017 و 2018 به ترتیب استانداردهای ES7، ES8 و ES9 منتشر شدهاند. که البته نام رسمی آنها به ترتیب ECMAScript 2016، ECMAScript 2017 و ECMAScript 2018 است. تغییراتی که در این 3 نسخهی اخیر در ECMAScript ایجاد شده است در مجموع خیلی کمتر از تغییراتی است که در نسخهی سال 2015 یا همان ES6 صورت گرفته است. در واقع ES6 یا ECMAScript 2015 آخرین نسخه از این استاندارد است که تغییرات چشمگیری نسبت به نسخهی قبلی خود داشته است.
در حال حاضر در نسخههای اخیر تمامی مرورگرهای مشهور، از جمله Chrome، Firefox، Edge و Safari نزدیک به 100 درصد ویژگیهای ECMAScript 2016 یا ES7 پشتیبانی میشوند. اما پشتیبانی از ES8 و ES9 کمی با مشکل مواجه است که البته قطعاً در آیندهی نزدیک این مشکلات برطرف خواهند شد. اما باید توجه داشته باشید که ضمن سازگار شدن مرورگرها با استانداردهای فعلی، همیشه استانداردهای جدیدتری نیز در حال تدوین و انتشار هستند. در نتیجه همیشه پشتیبانی مرورگرها از آخرین نسخهی استانداردها ناقص است و معمولاً از زمان انتشار یک نسخهی جدید از استاندارد ECMAScript، حدوداً بین 1 تا 2 سال زمان لازم است تا مرورگرهای مختلف پشتیانی خوبی از آن نسخه به عمل آورند.