اگر شما هم به برنامه نویسی علاقه مند هستید یا برنامه نویس هستید و در حال حاضر با یکی از زبانهای برنامه نویسی کار میکنید لازم است دربارهی جاوا اسکریپت و کاربردهایش اطلاعاتی داشته باشید.
در این مقاله ما سعی داریم تا شما را با توانایی های زبان برنامه نویسی جاوااسکریپت و مزایا و معایب آن آشنا کنیم.
جاوا اسکریپت چیست؟
JavaScript یکی از معروفترین، محبوبترین و مهم ترین زبان های برنامه نویسی است که کاربردهای بسیار زیادی در دنیای برنامه نویسی دارد .
جاوا اسکریپت (JS) یک زبان برنامه نویسی سبک وزن، تفسیر شده یا به موقع کامپایل شده با توابع درجه یک است که از زبان های مختلف برنامه نویسی پشتیبانی میکند.
در حالی که این زبان به عنوان زبان برنامه نویسی صفحات وب شناخته شده است، بسیاری از محیط های غیر مرورگر نیز از آن استفاده می کنند، مانند Node.js ، Apache CouchDB و. Adobe Acrobat
جاوا اسکریپت یک زبان مبتنی بر نمونه اولیه، چند پارادایم، تک رشته ای، پویا است که از سبک های شی گرا، امری و اعلامی (به عنوان مثال برنامه نویسی تابعی) پشتیبانی می کند.

استانداردهای جاوا اسکریپت
استانداردهای JavaScript عبارتند از مشخصات زبان ECMAScript (ECMA-262) و مشخصات API بین المللی و ECMAScript (ECMA-402) .
اسناد javascript در سراسر MDN بر اساس آخرین نسخه های پیش نویس ECMA-262 و ECMA-402 است.
Java Script یا Java
جاوا اسکریپت را با زبان برنامه نویسی جاوا اشتباه نگیرید. هر دو “Java” و “JavaScript” علائم تجاری یا علائم تجاری ثبت شده Oracle در ایالات متحده و سایر کشورها هستند. با این حال، این دو زبان برنامه نویسی روش، مفهوم و کاربرد بسیار متفاوتی دارند.
چرا جاوا اسکریپت
ابتدا جاوا اسکریپت برای زنده کردن صفحات وب ایجاد شده بود.
به برنامه های این زبان اسکریپت می گویند. آنها را می توان مستقیماً در HTML یک صفحه وب نوشت و با بارگیری صفحه به طور خودکار اجرا می شود.
HTML یک زبان برنامه نویسی فرانت اند است که درباره ی آن صحبت کرده ایم .
اسکریپت ها به صورت متن ساده ارائه و اجرا می شوند. آنها برای اجرا نیاز به آماده سازی یا تدوین خاصی ندارند.
نام گذاری جاوا اسکریپت
زمانی که javascript ایجاد شد، ابتدا نام دیگری داشت: “LiveScript”. اما جاوا در آن زمان بسیار محبوب بود، بنابراین تصمیم گرفته شد که قرار دادن یک زبان جدید به عنوان “برادر کوچکتر” جاوا کمک کند.
اما همانطور که جاوا اسکریپت تکامل یافت، به یک زبان کاملاً مستقل با مشخصات خاص خود به نام ECMAScript تبدیل شد و اکنون اصلاً ارتباطی با جاوا ندارد.

موتور جاوا اسکریپت
امروزه جاوا اسکریپت می تواند نه تنها در مرورگر، بلکه بر روی سرور یا در واقع بر روی هر دستگاهی که دارای برنامه خاصی به نام موتور جاوا اسکریپت باشد، اجرا شود.
یک موتور جاسازی شده در مرورگر وجود دارد که گاهی اوقات “ماشین مجازی جاوا اسکریپت” نامیده می شود.
موتورهای مختلف «نام رمز» متفاوتی دارند
مثلا:
V8 : در Chromeو Opera ،Edge .
SpiderMonkey : در فایرفاکس.
نامهای رمز دیگری مانند «چاکرا» برای IE، «JavaScriptCore»، «Nitro» و «SquirrelFish» برای Safari و غیره وجود دارد.
به خاطر سپردن اصطلاحات بالا خوب است زیرا در مقالات توسعه دهندگان در اینترنت استفاده می شود. ما هم از آنها استفاده خواهیم کرد برای مثال، اگر «ویژگی X توسط V8 پشتیبانی میشود»، احتمالاً در Chrome، Opera و Edge کار میکند.
موتورها چگونه کار میکنند؟
با اینکه موتورها پیچیده هستند ولی اصول اولیهی آنها آسان است.
موتور (اگر مرورگر باشد تعبیه شده است) اسکریپت را می خواند (“تجزیه”) میکند.
سپس اسکریپت را به زبان ماشین تبدیل می کند (“کامپایل”) میکند.
و پس از آن کد دستگاه خیلی سریع اجرا می شود.
موتور در هر مرحله از فرآیند، بهینه سازی ها را اعمال می کند. حتی اسکریپت کامپایل شده را در حین اجرا تماشا میکند، دادههایی را که از طریق آن جریان مییابد تجزیه و تحلیل میکند، و کد ماشین را بر اساس آن دانش بهینهسازی میکند.

جاوا اسکریپت درون مرورگر چه کاری می تواند انجام دهد؟
جاوا اسکریپت مدرن یک زبان برنامه نویسی “ایمن” است. دسترسی سطح پایین به حافظه یا CPU را فراهم نمی کند، زیرا در ابتدا برای مرورگرهایی که به آن نیاز ندارند ایجاد شده است.
قابلیتهای JavaScript تا حد زیادی به محیطی که در آن اجرا میشود بستگی دارد. برای مثال، Node.js از توابعی پشتیبانی میکند که به JavaScript اجازه خواندن/نوشتن فایلهای دلخواه، انجام درخواستهای شبکه و غیره را میدهد.
جاوا اسکریپت درون مرورگر می تواند همه کارهای مربوط به دستکاری صفحه وب، تعامل با کاربر و وب سرور را انجام دهد.
به عنوان مثال، جاوا اسکریپت درون مرورگر قادر است:
- HTML جدید را به صفحه اضافه کنید، محتوای موجود را تغییر دهید، سبک ها را تغییر دهید.
- به اقدامات کاربر واکنش(react) نشان دهید، با کلیک ماوس، حرکت اشاره گر، فشار دادن کلید اجرا کنید.
- درخواست ها را از طریق شبکه به سرورهای راه دور ارسال کنید، فایل ها را دانلود و آپلود کنید( به اصطلاح فناوری های AJAX و COMET) .
- کوکیها را دریافت و تنظیم کنید، از بازدیدکننده سؤال بپرسید، پیامها را نشان دهید.
- داده های سمت مشتری (“ذخیره سازی محلی”) را به خاطر بسپارید.
جاوا اسکریپت درون مرورگر چه کاری نمی تواند انجام دهد؟
توانایی های جاوا اسکریپت در مرورگر(in-browser JavaScript) به خاطر ایمنی کاربر محدود است.
هدف این است که از دسترسی یک صفحه وب شرور به اطلاعات خصوصی یا آسیب رساندن به داده های کاربر جلوگیری شود.
نمونه هایی از این محدودیت ها عبارتند از:
- javascript در یک صفحه وب ممکن است فایل های دلخواه را روی هارد دیسک بخواند/بنویسد، آنها را کپی کند یا برنامه ها را اجرا کند. دسترسی مستقیم به عملکردهای سیستم عامل ندارد.
مرورگرهای مدرن به آن اجازه میدهند با فایلها کار کند، اما دسترسی محدود است و تنها در صورتی ارائه میشود که کاربر اقدامات خاصی را انجام دهد، مانند ” انداختن” یک فایل در پنجره مرورگر یا انتخاب آن از طریق یک برچسب <input>.
راههایی برای تعامل با دوربین/میکروفون و سایر دستگاهها وجود دارد، اما آنها به اجازه صریح کاربر نیاز دارند. بنابراین یک صفحه دارای جاوا اسکریپت ممکن است یواشکی دوربین وب را فعال نکند، محیط اطراف را مشاهده کند و اطلاعات را به NSA ارسال نکند.
- تب ها/پنجره های مختلف معمولاً از یکدیگر اطلاعی ندارند. گاهی اوقات این کار را انجام می دهند، برای مثال زمانی که یک پنجره از JavaScript برای باز کردن پنجره دیگر استفاده می کند.
اما حتی در این مورد، JavaScript از یک صفحه ممکن است به صفحه دیگر دسترسی نداشته باشد، اگر از سایت های مختلف (از دامنه، پروتکل یا پورت متفاوت) آمده باشد.
به این «خط مشی منشا یکسان» می گویند. برای حل این مشکل، هر دو صفحه باید برای تبادل داده توافق کنند و حاوی کد جاوا اسکریپت خاصی باشد که آن را مدیریت می کند.
این محدودیت مجدداً برای ایمنی کاربر است. صفحه ای از http://anysite.co که کاربر باز کرده است نباید به برگه مرورگر دیگری با URL http://gmail.com دسترسی داشته باشد و اطلاعات را از آنجا بدزدد.
- javascript می تواند به راحتی از طریق شبکه با سروری که صفحه فعلی از آنجا آمده است ارتباط برقرار کند. اما توانایی آن برای دریافت داده از سایت ها/دامنه های دیگر فلج شده است. اگرچه ممکن است، اما به توافق صریح (که در سرصفحه های HTTP بیان می شود) از سمت راه دور نیاز دارد. یک بار دیگر، این یک محدودیت ایمنی است.
چه چیزی جاوا اسکریپت را منحصر به فرد می کند؟
حداقل سه چیز عالی در مورد جاوا اسکریپت وجود دارد:
ادغام کامل با HTML/CSS.
کارهای ساده به سادگی انجام می شود.
توسط تمام مرورگرهای اصلی پشتیبانی می شود و به طور پیش فرض فعال است.
جاوا اسکریپت تنها فناوری مرورگر است که این سه مورد را با هم ترکیب می کند.
این چیزی است که جاوا اسکریپت را منحصر به فرد می کند. به همین دلیل است که گسترده ترین ابزار برای ایجاد رابط های مرورگر است.
گفتنی است، جاوا اسکریپت همچنین امکان ایجاد سرور، برنامه های کاربردی موبایل و غیره را فراهم می کند.

زبانهای قابل انتقال به جاوا اسکریپت
سینتکس جاوا اسکریپت با نیازهای همه سازگار نیست. افراد مختلف از آن ویژگی های متفاوتی را می خواهند.
این قابل انتظار است، زیرا پروژه ها و الزامات برای همه متفاوت است.
بنابراین اخیراً تعداد زیادی از زبانهای جدید ظاهر شدهاند که قبل از اجرا در مرورگر به javascript تبدیل میشوند.
ابزارهای مدرن ترجمه را بسیار سریع و شفاف می کنند، در واقع به توسعه دهندگان این امکان را می دهند که به زبان دیگری کدنویسی کنند و آن را به صورت خودکار «زیر سرپوش» تبدیل کنند.
نمونه هایی از این زبان ها:
- CoffeeScript یک “قند نحوی” برای جاوا اسکریپت است. این دستور نحوی کوتاهتر را معرفی میکند و به ما امکان میدهد کد واضحتر و دقیقتری بنویسیم.
- TypeScript بر افزودن “تایپ دقیق داده” برای ساده سازی توسعه و پشتیبانی از سیستم های پیچیده متمرکز شده است. توسط مایکروسافت توسعه یافته است.
- Flow همچنین تایپ داده را اضافه می کند، اما به روشی متفاوت. توسعه یافته توسط فیس بوک.
- دارت یک زبان مستقل است که موتور مخصوص به خود را دارد که در محیطهای غیر مرورگر (مانند برنامههای موبایل) اجرا میشود، اما همچنین میتواند به جاوا اسکریپت منتقل شود. توسعه یافته توسط گوگل
- Brython یک انتقال دهنده پایتون به جاوا اسکریپت است که نوشتن برنامه ها را در پایتون خالص بدون جاوا اسکریپت امکان پذیر می کند.
- Kotlin یک زبان برنامه نویسی مدرن، مختصر و ایمن است که می تواند مرورگر یا Node را هدف قرار دهد.
علاوه بر اینها زبان های بیشتری وجود دارد. البته، حتی اگر از یکی از زبانهای ترجمه شده استفاده میکنیم، باید جاوا اسکریپت را نیز بدانیم تا واقعاً بفهمیم که چه کاری انجام میدهیم.

جمع بندی
جاوا اسکریپت در ابتدا به عنوان یک زبان فقط برای مرورگر ایجاد شد، اما اکنون در بسیاری از محیط های دیگر نیز استفاده می شود.
امروزه JavaScript به عنوان پرکاربردترین زبان مرورگر که به طور کامل با HTML/CSS ادغام شده است و موقعیت منحصر به فردی دارد.
زبانهای زیادی وجود دارند که به جاوا اسکریپت قابل انتقال هستند و ویژگیهای خاصی را ارائه میکنند. توصیه می شود پس از تسلط بر جاوا اسکریپت، حداقل به طور خلاصه نگاهی به آنها بیندازید.
یک نظر در “جاوا اسکریپت چیست؟ تمام چیزهایی که لازم است دربارهی javascript و کاربردهایش بدانید”