تفاوت بین JavaScript و ECMAScript


نویسنده : عرفان مولا
موضوع : طراحی وب
زمان انتشار : ۲ ماه پیش

توی این مقاله می‌خواهیم به تفاوت های بین JavaScript (JS) و ECMAScript (ES) بپردازیم، دو مفهوم خیلی ساده و پرکاربرد هستند و بصورت مرسوم در عرصه طراحی‌وب بکار برده [...]
تفاوت بین JavaScript و ECMAScript

سلام خسته نباشید، امیدوارم که حالتون خوب باشه و این روز های عید رو به خوشی (احتمالا) گذرونده باشید

توی این مقاله می‌خواهیم به تفاوت های بین JavaScript (JS) و ECMAScript (ES) بپردازیم، دو مفهوم خیلی ساده و پرکاربرد هستند و بصورت مرسوم در عرصه طراحی‌وب بکار برده میشن، حالا خیلیا هستند فرق بینشون رو نمی‌دونند و بجای همدیگه بکار می‌برند توی گفتار و …، ولی هردوم مفهوم جداگانه‌ای دارند و بهتره که به فلسفه‌شون بپردازیم هرچند تاثیری توی کاربردشون نداشته باشه

بیاید از ES شروع کنیم و بعدش بریم سراغ JS و بعدش تفاوت هاشونو درک کنیم

ECMAScript چی هست ؟

اِکما اسکریپت یا به اصطلاح ES ، یک استاندارد اسکریپت‌نویسی برای زبان های اسکریپت‌نویسی هستش، متشکل از یکسری قواعد و اصول و سینتکس هایی که ساختار یک زبان اسکریپت‌نویسی رو شکل میده، این زبان استاندارد توسط نهاد بین‌المللی ECMA یا به‌اصطلاح European Computer Manufacturers Association استاندارد‌سازی شده و بصورت بین‌المللی هم تایید شده

زبان اسکریپت‌نویسی ES فقط و فقط یک زبان و ساختار هستش و یک قاعده و سینتکس کلی رو برای یک زبان اسکریپت‌نویسی مشخص میکنه،‌ مثلا درونش مشخص میشه که سینتکس و ساختار شرط‌ها و حلقه‌ها و توابع به چه شکلی باشه، یا مثلا متغیرها به شکلی تعریف بشن و چه اسکوپی رو پوشش بدند، یا حدود شی‌گرایی و ساختار عملگر های یک زبان اسکریپت‌نویسی رو مشخص می‌کنه

پس زبان ECMAScript ، یک زبان اسکریپت‌نویسی هستش که دارای یکسری قواعد و سینتکس های مشخص و مختص خودش هست،‌درست مثل هر زبان دیگه ای !

JavaScript چی هست ؟

معمولا وقتی صحبت از جاوا اسکریپت میشه، بدلیل تشابه اسمی JavaScript با Java، که خودش یک زبان مستقل هستش، اغلب توسعه‌دهنده‌ها فکر می‌کنند که ارتباطی بین این دو زبان هستش درحالی که اصلا اینطور نیستش و این یک تشابه اسمی هستش، یه تشابه اسمی مثل ارتباط بین لیمو و لیموزین، در همین حد هستش و هیچ ارتباطی با همدیگه ندارند و صرفا یک نامگذاری هستش

جاوا اسکریپت خودش زبان خاصی نداره و صرفا یک تکنولوژی وب هستش که توی مرورگرها بکار برده میشه برای دسترسی/تغییر در اجزای DOM و BOM (البته بحث سمت سرور فرق می‌کنه) و یک زبان اسکریپت‌نویسی هستش که از استاندارد ECMAScript استفاده می‌کنه !

به همین راحتی و سادگی، جاوا اسکریپت یک تکنولوژی وب هستش و داره برای سینتکس و ساختارش از ساختار ECMAScript استفاده می‌کنه و از سینتکس ES تبعیت می‌کنه

مثلا برای تعریف متغیر از var و let و const استفاده می‌کنه که در ساختار ES تعریف شده، مثلا می‌تونست بجای ES از ساختار PHP استفاده کنه و متغیرها با $ تعریف بشن (:

جاوا اسکریپت در سمت کلاینت که در مرورگرها تحت یه انجین تفسیر میشه، تفاوت اصلیش با ES رو اینجا مشخص میکنه که ES فقط یکسری قواعد هستش در حالی که JS یک تکنولوژی سمت وب هستش و داره از ES استفاده می‌کنه، ES بصورت پیشفرض هیچ درکی از DOM یا BOM نداره و صرفا سینتکس هستش، این JS هستش که میاد و از ES استفاده می‌کنه برای ایجاد یک Object از نوع DOM یا BOM و به توسعه‌دهنده اجازه میده که از همون سینتکس ES استفاده کنه و یه اسکریپت بنویسه تحت جاوا اسکریپت و با اجزای صفحه یا مرورگر در تعامل باشه

کمی بیشتر درمورد ECMAScript

همونطوری که در بالا هم گفته شد، ES یک ساختار برای یک زبان اسکریپتی هستش و هیچ ارتباطی با JS نداره، جاوا اسکریپت صرفا یک تکنولوژی هستش که از ساختار ES برای خودش داره استفاده می‌کنه، درست مثل سایر زبان های اسکریپت‌نویسی مثلا JScript یا ActionScript که اون‌ها هم از ساختار ES برای اسکریپتینگ‌شون استفاده می‌کنند

استاندارد ECMA برای اسکریپت‌نویسی در طی سال‌ها با توجه به نیاز های توسعه‌دهنده‌ها آپدیت میشه و استاندارد های جدیدی هم بهش افزوده میشه، از این رو رفته رفته میشه توی JS هم از توابع و قابلیت های جدیدی که توی ES اضافه شدند استفاده کرد و از همین رو، مرورگرها مجبور هستند که موتور های تفسیر JS شون رو هر چند مدت یک‌بار آپدیت کنند تا از ساختار های جدید ES پشتیبانی بکنند

منتهی بدلیل تنوع زیاد در بین مرورگرها و عدم تمایل کاربران عادی به آپدیت اپلیکیشن‌ها، سازگارترین نسخه‌ای که از ES هستش نسخه ES6 هستش که در سال ۲۰۱۵ منتشر شده و مورد استفاده عموم توسعه‌دهنده‌ها هستش، منتهی هنوز هم کاربرانی هستند که از سال ۲۰۱۵ تا به الان که ۲۰۲۰ هستش، مرورگرشون رو آپدیت نکردند و هنوز هم از ES5 یا ES های قدیمی‌تر استفاده می‌کنند ! برای همین پیشنهاد می‌کنم که اگه وب‌اپلیکیشنی می‌نویسید که قراره توی نسخه های اندروید پایین‌تر یا مساوی اندروید ۴٫۴ اجرا بشه، به این نکته توجه داشته باشید که مرورگر پیشفرضشون معمولا از این قابلیت های ES6 پشتیبانی نمی‌کنه و باید از یه مرورگر جدید مثل Chrome و Firefox استفاده کنند، پس همون بهتر که با ES5 کدنویسی کنید و سازگاری رو حفظ کنید، یا هم اینکه از ابزار هایی مثل Babel استفاده کنید برای حفظ سازگاری یا سایر ابزار ها هم هستند که می‌تونید ازشون استفاده کنید

نتیجه‌گیری

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

اگه مقاله براتون مفید بوده می‌تونید با دوستانتون هم به اشتراک بزارید

موفق باشید

آیا مقاله برای شما مفید بود ؟

خیر

0

تقریبا

0

بله

2

برای ثبت نظر باید وارد حساب کاربری خود شوید
رای شما با موفقیت ثبت شد
متاسفانه خطایی در ثبت نظر رخ داد

Iran Developers Telegram Group

نظرات کاربران


نظری موجود نیست , اولین نظردهنده باشید !

نکات ارسال نظرات

نظرات فینگلیش به هیچ عنوان تایید نخواهند شد

هنگام نوشتن نام و ایمیل معتبر خود را وارد نمایید

در دیدگاه هایتان از الفاظ مناسب استفاده کنید

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

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