جاوا اسکریپت چیست؟ مقدمه ای بر Javascript

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

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

جاوا اسکریپت چیست؟

javascript (به اختصار JS ) یک زبان برنامه نویسی شیء گرا است که از آن در توسعه وب سایت ها استفاده می شود. JS یک زبان مفسری تمام عیار برای افزودن پویایی و سرزندگی به کدهای HTML است.

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

به برنامه های نوشته شده در این زبان اسکریپت (script) می‌گویند، به این دلیل که کدها مستقیما در صفحات HTML قرار گرفته و با بارگذاری صفحه به صورت خودکار اجرا می‌شوند. اسکریپت ها به صورت متنی ساده نوشته می‌شوند و برای اجرا نیاز به کامپایلر و تبدیل به فایل خروجی ندارند. به همین دلیل است که جاوا اسکریپت تفاوت های اساسی با زبان جاوا دارد .

چرا این زبان را JavaScript نامیده اند؟

اولین بار که جاوااسکریپت طراحی شد از نام‌های ‘Mocha‘ و بعدا ‘LiveScript‘ برای نام گذاری آن استفاده کردند، اما به دلایل تجاری و معروفیت بسیاز زیاد جاوا در آن زمان نام آن را به JavaScript تغییر دادند. در ادامه با رشد JS و فراگیر شدن ، این زبان برنامه نویسی به صورت کاملا مستقل از هر بستر و زبان دیگری با استانداردهای خاص خود ظاهر شد، با این استاندارد سازی عده ای آن را ECMAScript نیز می نامند.

قابلیت های جاوا اسکریپت

امروزه JavaScript تنها در مرورگرها استفاده نمی‌شود، بلکه از آن در برنامه نویسی سمت سرور نیز استفاده می‌شود. به طور کلی می توان گفت که کدهای JS را می توان در هر دستگاهی که از ‘the JavaScript engine’ پشتیبانی می‌کند اجرا کرد.

جاوا اسکریپت در مرورگرها

مرورگرها یک موتور داخلی دارند که آن ماشین مجازی جاوااسکریپت (JavaScript virtual machine) نامیده می‌شود، که برای مرورگرهای مختلف متفاوت است.

  • موتور V8: که در کروم و اپرا استفاده می شود
  • موتور SpiderMonkey که در مرورگر فایرفاکس استفاده شده است.
  • موتور Chakra برای شرکت مایکروسافت
  • و موتورهای SquirrelFish و Nitro توسط شرکت اپل استفاده می شود.
موتور جاوااسکریپت در مرورگرهای مختلف

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

  • افزودن HTML جدید به صفحه، تغییر محتوای فعلی و حتی استایل ها
  • تعامل با کنش های کاربر مانند کلیک ماوس، حرکت نشانگر و فشردن دکمه کیبورد
  • ارسال درخواست از طریق شبکه به سرور (Ajax)
  • دریافت و ذخیره کوکی ها و …
  • ذخیره داده در طرف کاربر (local storage)

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

ویژگی‌های JavaScript

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

یکی دیگر از ویژگی‌های بر JavaScript واکنش آنی و سریع آن است با این ویژگی به صفحات وب اجازه می‌دهید به‌صورت آنی به فعالیت‌های کاربران مانند کلیک، پر کردن فرم، حرکت دادن موس و … پاسخ مناسب و برنامه‌ریزی‌شده دهد، همچنین جاوا اسکریپت مشکلات و تأخیر های ناشی از ارتباط با سرور در زبان‌های تحت سرور مانند PHP و ASP.NET ندارد. زبان‌های طرف سرور برای ارتباط بین مرورگر و سرور طراحی‌شده‌اند یعنی کد در سرور اجراشده و خروجی به مرورگر کاربر ارسال می‌شود و این باعث تأخیر می‌شود درحالی‌که جاوا اسکریپت در مرورگر اجراشده و تأخیری ندارد و برنامه‌ها را بیشتر شبیه به برنامه‌های تحت دسک‌تاپ اجرا می‌کند تا تحت وب.

چه چیزی Javascript را منحصر به فرد می‌کند؟

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

  • تعامل کامل با HTML و CSS به عنوان هسته مرکزی هر صفحه وب.
  • پشتیبانی و به روز رسانی دائم توسط همه مرورگرهای شناخته شده.
  • سادگی در کد نویسی و استفاده از آن.
  • توسعه گسترده کتابخانه‌های کاربردی که کار را از آنچه که هست ساده‌تر می‌کنند.
وجود کتابخانه‌های مختلف و متنوع یکی از ویژگی های جاوا اسکریپت است
وجود کتابخانه‌های مختلف و متنوع یکی از ویژگی های جاوا اسکریپت است

جاوا اسکریپت تنها تکنولوژی است که همه اینها را با هم دارد، به علاوه همه اینها با هیمن زبان می توان کدهای طرف سرور و اپلیکیشن های موبایل نیز طراحی کرد.

جاوا اسکرپت چه کارهایی را در مرورگر نمیتواند انجام دهد

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

  • جاوا اسکریپت در مرورگر دسترسی مستقیم به عملکردهای سیستم عامل ندارد. یعنی توانایی خواندن، و یا نوشتن بر روی فایلها، اجرای برنامه‌ها و در کل امکان دسترسی به دیسک سخت وجود ندارد.
  • مرورگرهای مدرن به کدهای جاوا اسکریپت اجازه می‌دهند-با دسترسی محدود-با فایل‌ها کار کنند، این دسترسی تنها زمانی ممکن است که کاربر یک اقدام خاص مانند انداختن یک فایل در مرورگر، و یا بارگذاری یک فایل از طریق تگ <input> را انجام دهد.
  • راه‌هایی برای تعامل با دوربین/میکروفون و سایر سنسورهای سیستم وجود دارد، اما آنها به اجازه صریح کاربر نیاز دارند. بنابراین غیر ممکن است یک صفحه حاوی جاوا اسکریپت بتواند یواشکی دوربین وب را فعال کند و یا از میکروفون شنود کند.
  • تب‌ها و پنجره‌ها معمولا به همدیگر دسترسی ندارند. البته گاهی هم امکان دسترسی به صورت محدود طبق خط مشی خاصی وجود دارد.
    به آن Same Origin Policy «خط مشی منشا یکسان» می گویند. که در آن هر دو صفحه باید برای تبادل داده به توافق برسند و حاوی یک کد جاوا اسکریپت خاص باشد که آن را مدیریت می کند. در ادامه در این مورد بحث خوهیم کرد.
    تمامی این سیاست‌ها برای امنیت کاربر است. برای مثال: صفحه ای از example.com که کاربر باز کرده است نباید به برگه دیگری با ادرس gmail.com دسترسی داشته باشد.
  • جاوا اسکریپت می‌تواند به سادگی از طریق شبکه با سروری که صفحه از آنجا آمده ارتباط برقرار کند، اما توانایی اتصال و ارسال و دریافت داده از سایر سرورها و وبسایت ها را ندارد مگر اینکه صراحتا از طریق هدر HTTP قبلا اعلام کرده باشد.
جاوا اسکرپت چه کارهایی را در مرورگر نمیتواند انجام دهد
جاوا اسکرپت چه کارهایی را در مرورگر نمیتواند انجام دهد

مثال هایی از کاربرد جاوا اسکریپت

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

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

استفاده از جاوا اسکریپت در طراحی نقشه گوگل

برنامه‌هایی که شما با JavaScript می‌نویسید می‌تواند از باز کردن یک صفحه به‌صورت خودکار تا برنامه‌های تحت وب پیچیده‌ای مانندGoogle Doc (یکی از ابزارهای آنلاین اخیر گوگل برای مدیریت و ویرایش اسناد که می‌توانند نمونه کاملی از مجموعه آفیس مایکروسافت البته به‌صورت کامل آنلاین تلقی گردد) که امکان ساخت و ویرایش اسناد، صفحات گسترده، اسلاید و … را برای شما به ارمغان می‌آورد متغیر باشد

زبان‌هایی که مادرشان جاوا اسکریپت است

دستورزبان برنامه‌نویسی جاوا اسکریپت با نیازهای همه سازگار نیست. افراد مختلف ویژگی‌های متفاوتی انتظار دارند زیرا پروژه ها و نیازهای همه آنها یکی نیست و متفاوت است. بنابراین، اخیراً تعداد زبان‌های جدید ظاهر شده‌اند که ریشه آنها js است یعنی کدهای آنها قبل از اجرا در مرورگر به کد جاوا اسکریپت تبدیل می‌شوند.

نمونه هایی از این زبان ها:

  • CoffeeScript : یک سینتکس ساده برای جاوا اسکریپت است. CoffeeScript دستورزبان کوتاه‌تری دارد می‌کند و به ما امکان می‌دهد که کد واضح‌تر و دقیق‌تری بنویسیم. معمولا توسعه دهندگان روبی از این زبان استفاده می‌کنند.
  • TypeScript : توسط مایکروسافت توسعه یافته است و بر اضافه کردن “نوع داده دقیق تر” برای ساده سازی توسعه و پشتیبانی از سیستم های پیچیده متمرکز شده است.
  • Flow : توسعه یافته توسط فیس بوک و این زبان هم مانند typeScript نوع داده گسترده تری اضافه می کند.
  • ِDart : توسعه یافته توسط گوگل و یک زبان مستقل است که موتور مخصوص به خود را دارد، در محیط‌های غیر مرورگر (مانند برنامه‌های موبایل) اجرا می‌شود، اما همچنین می‌تواند به جاوا اسکریپت تبدیل شود.
  • Brython : یک زبان برای تبدیل پایتون به جاوا اسکریپت است که نوشتن برنامه ها را در پایتون بدون جاوا اسکریپت امکان پذیر می کند.
  • Kotlin : یک زبان برنامه نویسی مدرن، مختصر و ایمن است که می تواند مرورگر یا Node را هدف قرار دهد

بهتر است حتی برای یادگیری این زبانها نیز قبلا جاوا اسکریپت را یاد بگیریم

نتیجه گیری

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

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

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