تفاوت بین جاوا اسکریپت و ECMAScript چیست؟

تفاوت بین جاوا اسکریپت و ECMAScript چیست؟


انتشار:
JavaScript
1
0

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

من سعی کردم "تفاوت بین جاوا اسکریپت و ECMAScript" را در گوگل جستجو کنم.

در نهایت مجبور شدم از میان دریایی از نتایج مبهم و به ظاهر متناقض عبور کنم:

"ECMAScript یک استاندارد است."

"جاوا اسکریپت یک استاندارد است."

"ECMAScript یک مشخصات است."

"جاوا اسکریپت اجرای استاندارد ECMAScript است."

"ECMAScript یک جاوا اسکریپت استاندارد است."

"ECMAScript یک زبان است."

"جاوا اسکریپت گویش ECMAScript است."

"ECMAScript جاوا اسکریپت است."

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

تاریخچه جاوا اسکریپت

جاوا اسکریپت در سال 1995 توسط برندن ایچ، برنامه نویس کامپیوتری که برای شرکت ارتباطات نت اسکیپ کار می کرد، ایجاد شد. این زبان ابتدا لایو اسکریپت نام داشت، اما به دلیل ارتباط نزدیکش با جاوا، یکی دیگر از زبان های برنامه نویسی محبوب در آن زمان، به سرعت به جاوا اسکریپت تغییر نام داد.

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

تاریخچه ECMAScript

ECMAScript یک مشخصات زبان اسکریپت است که توسط انجمن تولیدکنندگان رایانه اروپا (ECMA) ایجاد شده است. اولین بار در سال 1997 با نام ECMA-262 منتشر شد. این مشخصات بعداً توسط کنسرسیوم جهانی وب (W3C) پذیرفته شد و به عنوان یک زبان برنامه نویسی برای برنامه های کاربردی وب استاندارد شد.

ECMAScript مبتنی بر جاوا اسکریپت است، اما ویژگی های دیگری را نیز شامل می شود که در آن زمان در جاوا اسکریپت وجود نداشت. به عنوان مثال، ECMAScript شامل ویژگی هایی مانند کلاس ها، ماژول ها، تکرار کننده ها و مولدهایی است که در جاوا اسکریپت موجود نیستند.

واژه نامه جاوا اسکریپت/ECMAScript

در زیر فهرستی از تعاریف است که با تمرکز بر ثبات و وضوح طراحی شده است. تعاریف 100% کامل نیستند. آنها به گونه ای ساخته شده اند که درک سطح بالایی از ارتباط و رابطه بین جاوا اسکریپت و ECMAScript ارائه می دهند.

بدون هیچ مقدمه ای، بیایید شروع کنیم.

اکما اینترنشنال (Ecma International)

سازمانی که استانداردهایی را برای فناوری ها ایجاد می کند. برای نشان دادن مثالی از "استاندارد" (البته این مورد توسط Ecma ایجاد نشده است)، به تمام صفحه کلیدهایی که تا به حال استفاده کرده اید فکر کنید. آیا اکثریت قریب به اتفاق حروف را به همان ترتیب، و یک نوار فاصله، یک کلید Enter، کلیدهای جهت دار، با اعداد نمایش داده شده در یک ردیف در بالا داشتند؟ این به این دلیل است که اکثر سازندگان صفحه کلید طراحی صفحه کلید خود را بر اساس استاندارد چیدمان QWERTY قرار می دهند.

ECMA-262

این استانداردی است که توسط Ecma International منتشر شده است. این شامل مشخصات یک زبان برنامه نویسی با هدف عمومی است. ECMA-262 استانداردی مانند QWERTY است، اما به جای نمایش مشخصات صفحه کلید، مشخصات زبان برنامه نویسی به نام ECMAScript را نشان می دهد.ECMA-262 را به عنوان شماره مرجع ECMAScript در نظر بگیرید.

یک زبان اسکریپت نویسی

یک زبان اسکریپت نویسی که به طور خاص برای عمل بر روی یک موجودیت یا سیستم موجود طراحی شده است برای یک ایده کلی در مورد اینکه چه چیزی یک زبان برنامه نویسی را به یک زبان برنامه نویسی تبدیل می کند، دستورات "walk"، "run" و "jump" را در نظر بگیرید. این اقدامات برای انجام آنها نیاز به چیزی دارد، شاید یک شخص، یک سگ یا یک شخصیت بازی ویدیویی. بدون داشتن بازیگری که این دستورات را اجرا کند، «راه رفتن»، «دویدن» و «پرش» معنا نخواهد داشت. این مجموعه اقدامات مشابه زبان برنامه نویسی است که بر روی دستکاری یک موجودیت خارجی تمرکز دارد.

ECMAScript

مشخصات تعریف شده در ECMA-262 برای ایجاد یک زبان برنامه نویسی با هدف عمومی. در حالی که ECMA-262 نام استاندارد است، مشخصات زبان اسکریپت ECMAScript را نشان می دهد. ECMAScript قوانین، جزئیات و دستورالعمل هایی را ارائه می دهد که یک زبان برنامه نویسی باید رعایت کند تا مطابق با ECMAScript در نظر گرفته شود.

جاوا اسکریپت

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

هنگامی که مردم جاوا اسکریپت را "گویش زبان ECMAScript" می نامند، به همان معنایی است که در مورد لهجه های انگلیسی، فرانسوی یا چینی صحبت می کنند، منظورشان این است. یک گویش بیشتر واژگان و سینتکس یا گرامر خود را از زبان مادر خود می گیرد، اما آنقدر انحراف دارد که شایسته تمایز باشد.

جاوا اسکریپت عمدتاً مشخصات ECMAScript را همانطور که در ECMA-262 توضیح داده شده است پیاده سازی می کند، اما تعداد انگشت شماری از تفاوت ها وجود دارد.

موتور جاوا اسکریپت JavaScript engine

برنامه یا مفسری که کد جاوا اسکریپت را درک و اجرا می کند. موتورهای جاوا اسکریپت معمولاً در مرورگرهای وب از جمله V8 در کروم، SpiderMonkey در فایرفاکس و چاکرا در Edge یافت می شوند. هر موتور مانند یک ماژول زبان برای کاربرد خود است که به آن اجازه می دهد از زیر مجموعه خاصی از زبان جاوا اسکریپت پشتیبانی کند.

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

تفاوت در عملکرد مرورگر

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

تفاوت در پشتیبانی مرورگر

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

با توجه به پشتیبانی مرورگر، مردم معمولاً در مورد "سازگاری ECMAScript" به جای "سازگاری جاوا اسکریپت" صحبت می‌کنند، حتی اگر موتورهای جاوا اسکریپت تجزیه و اجرا کنند... 

خب، جاوا اسکریپت. این ممکن است کمی گیج کننده باشد، اما یک توضیح وجود دارد.

اگر به خاطر داشته باشید، ECMAScript مشخصاتی است برای اینکه یک زبان برنامه نویسی چگونه می تواند باشد. انتشار یک نسخه جدید از ECMAScript به این معنی نیست که همه موتورهای جاوا اسکریپت موجود به طور ناگهانی دارای آن ویژگی های جدید هستند. این بر عهده گروه ها یا سازمان هایی است که مسئول موتورهای جاوا اسکریپت هستند که در مورد آخرین مشخصات ECMAScript به روز باشند و تغییرات آن را اتخاذ کنند.

بنابراین، توسعه‌دهندگان معمولاً سؤالاتی از این قبیل می‌پرسند: «این مرورگر از چه نسخه‌ای از ECMAScript پشتیبانی می‌کند؟» یا "این مرورگر از کدام ویژگی های ECMAScript پشتیبانی می کند؟" آن‌ها می‌خواهند بدانند که آیا گوگل، موزیلا و مایکروسافت به‌روزرسانی موتورهای جاوا اسکریپت مرورگرهای خود، به‌ترتیب V8، SpiderMonkey و Chakra، با ویژگی‌هایی که در آخرین ECMAScript توضیح داده شده‌اند، هستند یا خیر.

اگر نسخه جدیدی از ECMAScript منتشر شود، موتورهای جاوا اسکریپت کل به‌روزرسانی را یکجا یکپارچه نمی‌کنند. آن‌ها ویژگی‌های جدید ECMAScript را به‌صورت تدریجی ترکیب می‌کنند.

زمان اجرا جاوا اسکریپت JavaScript runtime

محیطی که کد جاوا اسکریپت در آن اجرا می شود و توسط یک موتور جاوا اسکریپت تفسیر می شود. زمان اجرا یا همان JavaScript runtime، اشیاء میزبانی را فراهم می کند که جاوا اسکریپت می تواند روی آنها کار کند و با آنها کار کند. زمان اجرا جاوا اسکریپت «موجود یا سیستم موجود» است که در تعریف زبان اسکریپت ذکر شده است. کد از موتور جاوا اسکریپت عبور می کند و پس از تجزیه و درک، یک موجودیت یا سیستم اقدامات تفسیر شده را انجام می دهد. یک سگ راه می رود، یک نفر می دود، یک شخصیت بازی ویدیویی می پرد.

برنامه‌ها با ارائه «host objects» در زمان اجرا، خود را در اختیار برنامه‌نویسی جاوا اسکریپت قرار می‌دهند. برای سمت کلاینت، زمان اجرا جاوا اسکریپت مرورگر وب است، جایی که host objects مانند ویندوز و اسناد HTML برای دستکاری در دسترس هستند.

آیا تا به حال با host objects پنجره یا سند کار کرده اید؟ اشیاء پنجره و سند در واقع بخشی از زبان اصلی جاوا اسکریپت نیستند. آنها Web API هستند، اشیایی که توسط مرورگری ارائه می شوند که به عنوان محیط میزبان جاوا اسکریپت عمل می کنند. برای سمت سرور، زمان اجرا جاوا اسکریپت Node.js است. host objects مربوط به سرور مانند سیستم فایل، پردازش ها و درخواست ها در Node.js ارائه می شوند.

یک نکته جالب: زمان اجراهای مختلف جاوا اسکریپت می توانند موتور جاوا اسکریپت یکسانی را به اشتراک بگذارند. به عنوان مثال، V8 موتور جاوا اسکریپت است که در Google Chrome و Node.js استفاده می شود، دو محیط بسیار متفاوت.

ECMAScript 6

این نسخه ششم استاندارد ECMA-262 است و تغییرات و بهبودهای عمده ای در مشخصات ECMAScript دارد. این نسخه از ECMAScript نام خود را از ES6 به ES2015 تغییر داد زیرا در سال 2015 Ecma International تصمیم گرفت به نسخه‌های سالانه ECMAScript تغییر نام دهد. بر این اساس، Ecma International نیز شروع به نام‌گذاری نسخه‌های جدید مشخصات ECMAScript بر اساس سال انتشار آنها کرد. به طور خلاصه، ES6 و ES2015 دو نام متفاوت برای یک چیز هستند.

Babel

ترانسپایلری که می تواند کد ES6 را به کد ES5 تبدیل کند. توسعه‌دهندگان می‌توانند از ویژگی‌های جدید براق ارائه شده با ES6 استفاده کنند، اما ممکن است نگران سازگاری بین مرورگرها برای برنامه‌های وب خود باشند. در زمان نگارش این مقاله، Edge و Internet Explorer به طور کامل از ویژگی های مشخصات ES6 پشتیبانی نمی کنند.

توسعه دهندگان نگران می توانند از Babel برای تبدیل کد ES6 خود به نسخه ای معادل عملکردی که فقط از ویژگی های ES5 استفاده می کند استفاده کنند. همه مرورگرهای اصلی به طور کامل از ES5 پشتیبانی می کنند، بنابراین می توانند کد را بدون هیچ مشکلی اجرا کنند.

نتیجه

امیدوارم این اطلاعات در مورد جاوا اسکریپت و ECMAScript برای شما مفید بوده باشد. قبل از اینکه در اینجا جمع بندی کنیم، می خواهم اطلاعات دیگری را به اشتراک بگذارم که باید برای توسعه دهندگان وب جدید روشن شود. مرغ یا تخم مرغ؟!
 

کمی گیج کننده تاریخ این است که جاوا اسکریپت در سال 1996 ایجاد شد. سپس در سال 1997 برای استانداردسازی به Ecma International ارسال شد که منجر به ECMAScript شد. در عین حال، چون جاوا اسکریپت با مشخصات ECMAScript مطابقت دارد، جاوا اسکریپت نمونه ای از پیاده سازی ECMAScript است.

این موضوع ما را با این واقعیت جالب روبرو می کند: ECMAScript بر اساس جاوا اسکریپت است و جاوا اسکریپت بر اساس ECMAScript است.

میدانم.

به نظر می رسد دقیقاً مانند فیلم DARK است ولی بسیار قشنگ است.

جاوا اسکریپت و ECMAScript دو زبان برنامه نویسی متفاوت با شباهت های زیادی هستند. در حالی که هر دو زبان برای توسعه وب استفاده می شوند، آنها یک زبان نیستند. جاوا اسکریپت پیاده سازی استاندارد ECMAScript است که تعریف می کند یک زبان برنامه نویسی چگونه باید باشد و چگونه باید رفتار کند.

#js#جاوااسکریپت#babel#ecma#acma_script#اکما_اسکریپت#اکمااسکریپت
نظرات ارزشمند شما :
جهت ارسال نظر لطفا لاگین شوید.