جاوااسکریپت (به انگلیسی: JavaScript) با کوتهنوشت JS نوعی زبان برنامهنویسی است که با ویژگیهای ارائه شده در مشخصات اکما اسکریپت مطابق است. جاوااسکریپت نوعی زبان سطح بالا، کامپایل درجا و چندالگویی است. این زبان نحو آکولادی دارد، نوعدهی آن پویا است، نوع شیءگرایاش بر پایه پیشنمونه است و دارای توابع کلاس اول است.
در کنار HTML و CSS، جاوااسکریپت یکی از فنآوریهای هستهای وب جهانگستر است.
علیرغم اشتباه عمومی، زبان جاوااسکریپت با زبان جاوا ارتباطی ندارد، دلیل این نامگذاری محبوبیت زبان جاوا در هنگام تولد جاوااسکریپت بود؛ اگر چه ساختار این زبان به سی پلاس پلاس (++C) و سی شارپ (C#) شباهت دارد که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همین رو دستورهای متداول مانند if, for, try..catch, while و … در این زبان هم یافت میگردند.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، برخلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
به علت این قابلیت زبان جاوااسکریپت برای ساختن نمونه از سیستم، مناسب است.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی بوده و به کمک این زبان میتوان به اشیاء داخل صفحات اچتیامال دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویانمایی در سمت کاربر، از این زبان استفاده میشود.
تاریخچه
جاوااسکریپت را در ابتدا شخصی به نام برندان آیک در شرکت نتاسکیپ با نام Mocha طراحی نمود. این نام بعداً به LiveScript و نهایتاً به جاوااسکریپت تغییر یافت. اولین نمونههای جاوااسکریپت در اواخر دهه ۱۹۹۰ برای مرورگر وب Netscape Navigator ایجاد شد.
اولین نسخه جاوااسکریپت در نسخه B32.0 این مرورگر در دسامبر ۱۹۹۵ معرفی و عرضه شد. این نامگذاری منجر به سردرگمیهای زیادی شده و این ابهام را ایجاد میکند که جاوااسکریپت با جاوا مرتبط است در حالی که اینطور نیست.
عدهٔ زیادی این کار را ترفند تجاری برای بهدست آوردن بخشی از بازار جاوا که در آن موقع زبان جدید مطرح برای برنامهنویسی تحت وب بود میدانند.
javaScript به صورت «جاواسکریپت» خوانده میشود، ولی در فارسی به صورت «جاوااسکریپت» ترجمه میشود و اگر به صورت «جاوااسکریپت» ترجمه شود اشتباه است چون دوکلمه جدا ازهم نیست و اگر به صورت دو کلمه جدا نوشته شود خطاهای نگارشی ایجاد میشود، بهطور مثال ممکن است کلمه جاوا در انتهای خط و کلمه اسکریپت در ابتدای خط بعدی نوشته شود.
علیرغم اشتباه عمومی، زبان جاوااسکریپت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد که این امر برای یادگیری آسان در نظر گرفته شدهاست.
در آن زمان، صفحات وب ایستا بودند و تعامل کمی با کاربر، فراتر از کلیک کردن روی پیوندها و بارگیری صفحات جدید، ایجاد میکردند. برای اولین بار، جاوااسکریپت انیمیشن، محتوای تطبیقی و اعتبار سنجی فرم را در صفحه فعال کردهاست.
جی اسکریپت
برای سالهای طولانی، جاوااسکریپت فقط در تعداد محدودی از مرورگرها کار میکرد. مایکروسافت اینترنت اکسپلورر، بزرگترین پایگاه مرورگر، خیلی زود از جاوااسکریپت پشتیبانی نکرد. در عوض، مایکروسافت اسکریپت اختصاصی سمت مشتری خود را با نام JScript ایجاد کرد. در روزهای ابتدایی توسعهٔ وب، برنامهنویسان که مایل به ایجاد وبسایتهای پویا بودند، اغلب مجبور به انتخاب یک خانواده مرورگر از خانوادهٔ دیگر شدند. این کمتر از ایدئال بود زیرا اینترنت را کمتر در دسترس جهانی قرار میداد.
جاوااسکریپت تا سال ۱۹۹۹ استاندارد نشده و بهطور گسترده هم پذیرفته نشد. حتی پس از استانداردسازی، سازگاری مرورگر برای بیش از یک دهه همچنان مسئله ساز بود.
به دلیل موفقیت عمدهٔ جاوااسکریپت در نقش اسکریپتنویسی سمت کاربر (Client Side Scripting Language) برای صفحات وب، مایکروسافت یک نسخه سازگار از این زبان را ایجاد کرد و به علت مشکلات حقوقی آن را جی اسکریپت نامید. این زبان در نسخه ۳٫۰ از مرورگر اینترنت اکسپلورر و در اوت ۱۹۹۶ داده شد. تفاوتهای این دو زبان به حدی جزئی است که اغلب جی اسکریپت و جاوااسکریپت به جای هم به کار میروند. هرچند که مایکروسافت در اینجا چند ده دلیل برای تفاوت جی اسکریپت با استاندارد اکما مطرح میکند.
نتاسکیپ جاوااسکریپت را به سازمان اکما اینترنشنال برای استانداردسازی ارسال کردهاست و نتیجه نسخهٔ استاندارد شدهای به نام اکما اسکریپت است.
جاوااسکریپت به یکی از زبانهای برنامهنویسی پرطرفدار در وب تبدیل شدهاست. هر چند ابتدا بسیاری از برنامهنویسان حرفهای زبان را کم ارزش تلقی میکردند چون مخاطبان آن نویسندگان صفحات وب و آماتورهای این چنینی بودند. ظهور ایجکس بار دیگر جاوااسکریپت را در معرض توجه قرار داد و برنامهنویسان حرفهای بیشتری را به خود جذب نمود. نتیجه ازدیاد فریمورک و کتابخانههای جامعی در این زمینه، بهبود شیوههای رایج برنامهنویسی در جاوااسکریپت و افزایش کاربرد جاوااسکریپت خارج از وب است.