وب آکادمی

مرجع آموزش طراحی و برنامه نویسی وب

ECMASCRIPT چیست؟

دسته بندی:مقالات فناوری و آموزشی تاریخ انتشار: 28 آذر 1397 برچسب ها : برچسب‌ها:, , , , , ,

اکما اسکریپت نوعی جاوا اسکریپت استاندارد شده است که با مرورگرهای اینترنتی سازگاری کامل دارد .برای داینامیک کردن صفحات وب، احتمالا به جاوا اسکریپت نیاز خواهید داشت، ولی جاوا اسکریپت به تنهایی استاندارد لازم برای سازگاری با مرورگرها را ندارد.  و شما برای استفاده از جاوا اسکریپت در طراحی سایت نیاز به یک مکمل دارید، اینجا است که پای اکما اسکریپت به میان می‌آید. در واقع اکما اسکریپت نسخه استاندارد شده جاوا اسکریپت برای سازگاری این زبان با انواع مختلف مرورگرها است.

بد نیست تاریخچه کوتاهی از جاوا اسکریپت و پیدایش اکما اسکریپت برای سازگاری با مرورگرها را با هم بررسی کنیم.

 

جاوا اسکریپت و تولد اکما اسکریپت
اولین مرورگری که به شکل امروزی در دنیای وب عرضه شد مرورگر Mosaic بود که در سال ۱۹۹۳ منتشر شد. شرکت NET Scape  بعدها مرورگر تازه‌ای به اسم نت اسکیپ منتشر کرد که برای مدتی سلطه دنیای مرورگرها را در اختیار داشت. در آن زمان صفحات وب صفحاتی بسیار ساده بودند که با استفاده از زبان نشانه گذاری  HTMLطراحی می‌شدند. کار با این نوع صفحه‌ها بسیار آسان بود و نمی‌شد قابلیت‌های زیادی به صفحات وب اضافه کرد.
بعدها شرکت نت اسکیپ تصمیم گرفت یک زبان اسکریپتی ایجاد کند تا به وسیله آن بتوان صفحات وب را داینامیک (پویا) کرد. بدین ترتیب بود که زبان اسکریپتی جاوا اسکریپت نوشته شد.

ECMASRIPT 1.0
تا سال ۱۹۹۶ استاندارد خاصی برای جاوا اسکرسپت در نظر گرفته نشده بود، به همین دلیل اشکالات و تفاوت‌های زیادی در آن مشاهده می‌شد. وجود همین مشکلات باعث شد تا زبان جاوا اسکریپت برای استاندارد سازی به سازمان ECMA ارائه شود. در نهایت در سال ۱۹۹۶ اکما اسکریپت ۱٫۰ که همان نسخه استاندارد سازی شده از جاوا اسکریپت بود در دسترس طراحان سایت قرار گرفت.
نسخه بعدی اکما اسکریپت که با نام ECMASCRIPT 2.0 شناخته می‌شد، در سال ۱۹۹۸ منتشر شد. این نسخه با امکا اسکریپت اولیه تفاوت چندانی نداشت و تنها برای رفع تناقضات در استاندارد بین ISO و ECMA با جاوا اسکریپت ایجاد شده بود.

ECMASCRIPT3.0
در سال ۱۹۹۹ اکما اسکریپت ۳ منتشر شد و تغییرات بزرگی را به وجود آورد. در این نسخه از اکما اسکریپت، امکانات ویژه‌ای اضافه شده بود که در طراحی سایت بسیار کاربرد داشت. پیرو تولد نسخه جدید اکما اسکریپت،‌ در سال ۲۰۰۰ نسخه‌ی ششم از مرورگر NETScape Navigator هم منتشر شد که از اکما اسکریپت ۳ پشتیبانی می‌کرد. حدود یک سال و نیم بعد مرورگر جدیدی به نام “فایرفاکس” بر پایه‌NET Scape Navigator، منتشر شد که آن هم از اکما اسکریپت ۳ پشتیبانی می‌کرد. به همین دلیل عملاً جاوا اسکریپت در تمام مرورگرهای اصلی آن زمان پشتیبانی شد و تا امروز هنوز بسیاری از لایبرری‌های جاوا اسکریپت برپایه نسخه‌ی ۳ نوشته می‌شوند.

ECMASCRIPT4.0
در سال ۲۰۰۰ مرورگر Internet Explorer 5 توسط Microsoft توسعه داده شد و امکاناتی که در استاندارد نبودند، به آن افزوده شد. یکی از معروف‌ترین این موارد XML Http Request بود که بعدها به نام Ajax معروف شد و هنوز هم تحت این عنوان شناخته می‌شود. به دلیل این که اینترنت اکسپلورر ۵ و ۶ تفاوت‌‌هایی با جاوا اسکریپت استاندارد و سایر مرورگرها داشتند، مشکلات فراوانی برای توسعه دهندگان وب و طراحان سایت به وجود آمد. به خاطر همین مشکلات، سایت‌ها از بازدید کنندگان خود درخواست می‌کردند تا از نسخه های قدیمی‌تر IE استفاده کنند. پس از این اتفاق مایکروسافت تصمیم گرفت برای رفع مشکلات به وجود آمده از نسخه ۷ به بعد از استانداردهای جاوا اسکریپت پیروی کند.

ECMASCRIPT5.0
در سال ۲۰۰۹ و با تاخیر بسیار زیاد، بالاخره نسخه پنجم اکما اسکریپت منتشر شد. این نسخه، ورژن تکمیل شده ECMAScript 3.1 بود و به دلیل امکانات و ویژگی های اضافه شده بهترین نسخه جاوا اسکریپت از لحاظ پشتیبانی مرورگرها بود. اکمااسکریپت ۵ به طور کامل توسط مرورگرهای زیر پشتیبانی می‌شود.

  •  Firefox 4 سال ۲۰۱۱
  • Chrome 19 سال ۲۰۱۲
  • Safari 6 سال ۲۰۱۲
  • Opera 12 سال ۲۰۱۲
  • Internet Explorer 10 سال ۲۰۱۲

ECMASCRIPT 6.0
نگارش ۶ این استاندارد است که به آن ECMA Script 2015 نیز می‌گویند (زمان نهایی شدن استاندارد آن سال ۲۰۱۵ است) و از زمان ارائه‌ی جاوا اسکریپت، بزرگترین تغییر و تحول آن نیز محسوب می‌گردد. با ES 6 مواردی مانند کلاس‌ها، برنامه نویسی تابعی (functional programming)، ماژول‌ها و غیره اضافه شده‌اند.

استانداردهای اکما اسکریپت
قطعا اکما اسکریپت با استاندارهایی که دارد توانسته ویژگی ها و شاخص‌ هایی را به زبان جاوا اسکریپت اضافه کند و قدرت و محبوبیت را به این زبان اضافه کند. در ادامه ۴ ویژگی استاندارد سازی اکما اسکریپت را برای شما شرح می‌دهیم.
همان‌طور که در قسمت بالا هم  اشاره کردیم، وجود یک سری قوانین و مفاهیمی که بتواند کار ما را اصطلاحا استاندارد جلوه بدهد، می تواند کمک و مزیت‌ های زیادی را برای کار ما داشته باشد. قطعا این استانداردسازی در زبان¬‌های برنامه نویسی هم مستثنی از این موضوع نیست و می¬‌تواند در حیطه آموزش طراحی سایت به ما کمک بسیاری بکند که در ادامه سعی داریم برخی از این ویژگی¬‌ها را بیان کنیم.

۱- احترام به طراحان و توسعه دهندگان وب
زمانی که یک قاعده یا قانون مشخصی در استاندارد سازی وجود داشته باشد حتی وقتی که بخواهیم در قواعد استاندارد خود تغییری ایجاد کنیم خیلی راحت‌تر می‌توانیم این کار را انجام دهیم چون موضوعات به خاطر داشتن یک سری قواعد هدفمند کاملا مشخص هستند.
حال در برنامه نویسی وب و طراحی سایت هم به همین صورت است. گاهی یک وب سایت طراحی می¬‌شود و ممکن است به هر دلیلی در ادامه کار سایت یا پروژه¬‌ای که داریم، مجبور باشیم یک برنامه نویس یا توسعه دهنده سایت را استخدام کنیم. اگر از سیستم استاندارد اکما اسکریپت استفاده کرده باشیم دیگر برنامه نویس یا توسعه دهنده¬‌ ما مشکلی در کار ندارد و می¬‌تواند با شناسایی جایگاه مشخص هر کد، برنامه نویسی را مجددا طبق نظر ما انجام دهد.

۲- سازگاری با موتورهای جستجو
استانداردهای اکما اسکریپت باعث می‌شود که صفحات سایت شما خیلی منظم و خوب برای جستجوی مرورگرها، فهرست بندی شوند (درواقع محتوای سایت شما را برای موتورهای جستجو بهینه می کند). این عامل علاوه بر اینکه در سئو سایت شما مؤثر است می¬‌تواند در انتقال مخاطب از google به وب‌سایت شما هم کمک بسیار زیادی کند. ضمن این که باعث خواهد شد در زمان هم صرفه‌جویی داشته باشیم. درواقع تصور کنید که اگر سیستم استانداردسازی اکما اسکریپت وجود نداشت، بایستی برای هر مرورگر یک برنامه نویسی مخصوص انجام می‌شد که زمان بسیار زیادی از ما می گرفت.

۳- احترام به تمامی اقشار جامعه
اینکه اقشار ضعیف جامعه نمی توانند سیستم های پیچیده امروزی را داشته باشند، امری بدیهی است. حال استاندارد اکما اسکریپت می¬‌تواند به اقشار ضعیف جامعه هم کمک کند تا بتوانند با مرورگرهایی هرچند قدیمی‌تر، به صفحات وب دسترسی داشته باشند (هرچند که کیفیت لازم را ندارند اما بازهم از صفحات وب محروم نیستند). درواقع می توان این ویژگی را به‌عنوان یک جایگاه اخلاقی در اکما اسکریپت به حساب آورد.

۴- جلوگیری از اشتباهات
زمانی که از استاندارد می‌گوییم، یعنی هر چیزی دارای ساختار و نظام مشخصی است. بنابراین دیگر توقع خطا و اشتباه وجود ندارد.

 

در june سال 2015 هنگامی که نسخه 6 اکما وارد عرصه فناوری شد، روح تازه‌ای به کالبد ان وارد شده بود و این امر باعث شد تا زبان جاوااسکریپت پیشرفت هرچه بیشتر خود را با این ابزار احساس کند. در این قالب ویژگی‌های زیادی به استانداردسازی‌ها اضافه شده بود که در ادامه به تعدادی از این ویژگی‌ها اشاره‌ای خواهیم داشت:

  • Let/const: دو واژه کلیدی که به این قالب اضافه شد و برای تعریف متغیر‌ها از انها استفاده می‌شود. این تعاریف باعث می‌شود تا بتوانیم بین متغیرهایی که می‌خواهیم دست نخورده باقی بمانند و دیگر متغیرها تفاوت قائل شویم. با استفاده از const به تعریف متغیر‌های ساده و با استفاده از let به تعریف دیگر متغیرها می‌پردازیم.
  • Destructuring: یکی از کاربردهای این ویژگی زمان استفاده از objectها خود را نشان می‌دهد. با استفاده از این ویژگی می‌توان بخش‌هایی از object را به متغیر‌هایی با همان نام اختصاص داد.
  • Template string: با استفاده از این ویژگی و به راحتی هرچه تمام‌تر می‌توان متغیرها را در متن‌ها به سادگی جایگزین کرد. با استفاده از کاراکتر ‘ دو طرف متن، می‌توانیم متغیرها را با گذاشتن ${اسم متغیر} به متن اضافه کرد.
  • Arrow function: این خصوصیت ظاهر جدیدی را برای متغیر ارائه می‌دهد و در ان کلمه کلیدی function حذف شده است.
  • Rest/ spread: با استفاده از مفهوم rest می‌توان تعداد ارگومان‌های ورودی را خالی گذاشت. به این شکل که بعد از تعریف کردن ارگومان‌های مورد نیاز، بقیه ارگومان‌ها را به عنوان یک ارایه دریافت می‌کنیم. با استفاده از ویژگی spread می‌توان مقدار ارایه‌ها را در هم کپی کرد.
  • Array helper: array helper متدهایی هستند که برای ارایه‌ها ارائه شده و با استفاده از انها می‌توان کارهایی مثل map کردن یا پیدا کردن عنصری خاص را انجام داد.
  • Class: قابلیت دیگری که در اکما ورژن 6 اضافه شده است این است که می‌توان کلاس تعریف کرد. در حالت عادی در جاوااسکریپت برای اینکه بتوان کلاس تعریف کرد باید به prototypeها تسلط کامل داشت و در کنار ان با دردسرهای زیادی روبرو هستیم. اما با استفاده از این ویژگی اکما می‌توان به راحتی کلاس‌های مورد نظر را تعریف کرد.
  • Generator: با استفاده از generator‌ها می‌توان در قسمت‌های مختلف کد مورد نظر نقطه‌های توقف ایجاد کرد و در زمان مناسب ادامه کد را اجرا کنیم.
  • Promise: این ویژگی برای کاربردهای غیر همزمان در جاوااسکریپت به کار می‌رود به این صورت که می‌توانیم بخش‌هایی را برای کد تعریف کنیم که در صورت اتمام موفقیت‌امیز یا غیر موفق این کد‌ها، بخش‌های دیگری از کد شروع به اجرا کنند.

موارد ذکر شده تنها گوشه‌ای از ویژگی‌های ES6 (ECMAscript6.0) بودند. بسیاری قابلیت دیگر نیز برای کار با اعداد و objectها در ان ارائه شده است که کار با جاوااسکریپت را لذت‌بخش خواهد کرد.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

16 + نوزده =