جاوا اسکریپت، به اختصار JS (به انگلیسی: JavaScript) زبان برنامهنویسی سطح بالا، پویا، مبتنی بر شی، وابستگی کم به نوع (Weakly typed)، چند رویه و تفسیری است. در کنار HTML و CSS، جاوا اسکریپت یکی از سه هسته صفحات دنیای وب میباشد.
علیرغم اشتباه عمومی، زبان جاوا اسکریپت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس (++C) و جاوا شباهت دارد که این امر برای یادگیری آسان در نظر گرفته شدهاست.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی میباشد و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویانمایی در سمت کاربر، از این زبان استفاده میشود.
تاریخچه جاوا اسکریپت
سال ۱۹۹۵ آقای براندن ایچ در کمپانی Netscape این زبان را در زمان کوتاه طبق شایعات تقریبا ۱۰ روز نوشت.جاوا اسکریپت طراحی شده از تلفیق برترین ویژگی های زبان برنامه نویسی های دیگر می باشد.
جاوا اسکریپت اول با نام Mocha معرفی شد که بعدها به LiveScript و در نهایت به جاوا اسکریپت تغییر کرد . این تغییر نام هم زمان شد با پشتیبانی از جاوا در مرورگر وب Netscape Navigator. اولین نسخه جاوا اسکریپت در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نام گذاری باعث سردرگمی زیاد شد و موجب ربط دادن این دو (جاوا و جاوا اسکریپت) به یکدیگر شد. بعضی این کار را یک ترفند تجاری برای به دست آوردن بازار جاوا میدانند.
به دلیل موفقیت عمده جاوا اسکریپت در سمت کاربر برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را جی اسکریپت نامید.
این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در اوت ۱۹۹۶ داده شد. تفاوتهای این دو زبان به حدی جزیی است که اغلب جی اسکریپت و جاوا اسکریپت به جای هم به کار میروند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت جی اسکریپت با استاندارد ECMA مطرح میکند.
توانایی های جاوا اسکریپت
توانایی ها و قابلیت های جاوا اسکریپت بسیار متنوع بوده و تنها به موارد که در زیر می آید خلاصه نمی شود. در زیر لیستی از قابلیت های این اسکریپت آورده شده است:
- امکان تغییر در متون نمایش داده شده در مرورگر
- امکان تغییر رنگها، رنگ پس زمینه و موقعیت قرار گیری المانهای استفاده شده در طراحی وب سایت
- تغییر در مشخصه های المانها و CSS آنها
- متحرک سازی، انیمیشن و پویا نمایی
- تعامل با کاربر و از طریق المانهای ورودی نظیر Textbox ها، RadioButton ها، TextArea و غیره
- عکس العمل نشان دادن به واکنش های کاربران نظیر تغییر عکسها با حرکت موس روی آنها
- نمایش اخطار و یا پیام به کاربران
- انجام محاسبات ریاضی
- ساخت و تولید کد HTML بصورت پویا و بر حسب شرایط مورد نیاز
- منوهای جالب همراه با انیمیشن
- جمع آوری اطلاعات کاربران از سایت و آمارگیری
مزایای جاوا اسکریپت
در زیر لیستی از مزایای استفاده از جاوا اسکریپت آورده شده است. لازم به ذکر است که مزایا این زبان برنامه نویسی تنها به این موارد ختم نمی شود:
- دادن پویایی به صفحات استاتیک وب سایت ها
- برخی از عملیات را نمی توان بدون استفاده از این زبان برنامه نویسی انجام داد. نظیر تعامل با کاربر، یافتن اطلاعات کاربری بازدید کنندگان نظیر IP های آنها و موارد دیگر
- نزدیک بودن این زبان برنامه نویسی به زبانها برنامه نویسی دیگر نظیر C, C++ و یا C#
- امکان استفاده از کتابخانه های آماده این زبان برنامه نویسی نظیر کتابخانه های استاندارد ریاضی
- سادگی در برنامه نویسی و پیاده سازی بدون درگیر شدن با کامپایلر های پیچیده.
معایب جاوا اسکریپت
از جمله معایب جاوا اسکریپت می توان موارد برتر زیر را بر شمرد:
- کند بودن در زمان اجرا بدلیل عدم کامپایل شدن کدها.
- دیباگ کردن آن بسیار مشکل است.
- چنانچه خطایی در اجرای برنامه رخ دهد، در برخی از موارد بدون دادن پیامی یا ارائه هیچگونه راهنمایی، از برنامه خارج می شود.
- در همه مرورگرها قابل اجرا نمی باشد (در مرورگرهای قدیمی) و نیز برخی کاربران، برای سو استفاده سایت ها، امکان اجرای اینگونه اسکریپت ها را بر روی مرورگر خود لغو می کنند.
- بر روی مرورگر اجرا می شود در نتیجه هیچگونه امکانی برای مبادله با سرور سایت را ندارد.
ابزارها و کتابخانههای معروف جاوا اسکریپت
یکی از مزایای جاوا اسکریپت، فریمورک ها و کتابخانههایی است که بر پایه این زبان شکل گرفتهاند. کتابخانه هر زبان برنامه نویسی، در واقع مجموعهای از دستورات آن زبان است که در قالب خلاصه و آماده برای استفاده قرار میگیرد.
یکی از مشهورترین و نام آشناترین کتابخانههای جاوا اسکریپت، Jquery است. جیکوئری در واقع مجموعهای از دستورات پیچیدهی جاوا اسکریپت است که به صورت بسیار ساده و آسان در اختیار همه قرار دارد.
جیکوئری این امکان را به شما میدهد که بجای کد نویسی طولانی، کدهای خود را در یک یا چند سطر خلاصه کنید با استفاده از جیکوئری میتوانید بجای کد نویسی طولانی از مزیتهای جیکوئری در کوتاه نویسی کد ها استفاده کنید . برای مثال اگر برای یک کار باید ده خط کد جاوا اسکریپت بنویسید، با استفاده از یک متد یک خطی جیکوئِری میتوانید همان کار را با کیفیت و دقت بالا انجام دهید.
این روزها با پیشرفت جاوا اسکریپت دیگر تنها یک زبان برنامه نویسی برای طراحی وبسایت و افزودن انیمیشن نیست. فریمورک ها و ابزارهای زیادی با کمک جاوااسکریپت توسعه داده شداست که با آنها میتوان اپلیکیشن ها یا سیستم های پیچیده و نیمه پیچیده پیاده سازی کرد.
برای مثال ریاکت که توسط فیسبوک و یا angularjs که توسط گوگل توسعه داده شدهاست نام برد. با معرفی nodejs امکان اجرای جاوااسکریپت سمت سرور فراهم شد.
بهطور کلی با زبان جاوا اسکریپت از سرورها تا اپلیکیشن های موبایل تا سیستمهای وب قابل پیادهسازی هستند. ابزارهای زبان مورد بحث، این روزها به قدری گسترده شدهاند که نمیتوانیم بدون آنها به دنیای وب فکر کنیم. از بین مشهورترین ابزارها و فریمورک های توسعهیافته به زبان جاوا اسکریپت میتوان به موارد زیر اشاره کرد:
- ReactJS که بسیاری از سایتها و سرویسهای بزرگ بر پایهی این فریمورک توسعه داده شدهاند.
- React Native محصول شرکت فیسبوک که به کمک آن با جاوا اسکریپت می توان برنامه موبایل نوشت.
- فریم ورک AngularJs گوگل که آخرین نسخه آن angular 4 است و بسیاری از ابزارها و سرویسهای بزرگ بر پایه ی آن توسعه داده شدهاند.
- زبان اپن-سورس NodeJS که امکان برنامهنویسی با زبان جاوا اسکریپت را در سمت سرور فراهم میکند.
نکته:
وانیلا جاوا اسکریپت یا وانیلا جی اس (Vanilla JS) اصطلاحی است که به همان زبان جاوااسکریپت اطلاق میشود. در حقیقت، وانیلا جی اس هیچ فریمورک یا کتابخانه خاصی نیست. این اصطلاح بیشتر برای کسانی ساخته شده است که گمان میکنند برای استفاده از جاوا اسکریپت، حتماً باید از کتابخانههای موجود یا فریمروک خاصی استفاده کنند.
دلیل یادگیری جاوا اسکریپت
جاوا اسکریپت یکی از زبانهای اصلی برنامه نویسی مورد نیاز برای ورود به دنیای وب است. به خصوص که امروزه جاوا اسکریپت گسترش و پیشرفت بسیار زیادی داشته و با فریمورک های قدرتمندی همچون انگولار، ریاکت، vue، Node و … دراکثر پروژهها مورد استفاده قرار میگیرد.
یک برنامه ساده در جاوا اسکریپت
<script type="text/javascript">
alert ("Hello world");
var x = prompt("Enter Name:", "Default name");
alert ("Hello, " + x)
</script>
با استفاده از کد بالا ابتدا یک پیغام “Hello world” در مرورگر به نمایش در می آید سپس نام کاربر پرسیده می شود و در آخر با نام کاربر به کاربر سلام داده می شود .