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

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

اگر خواننده وبلاگ ما باشید احتمالاً یادتان هست که قبلاً در مقالۀ «اکما اسکریپت چیست؟» اشاره کوتاهی به جاوا اسکریپت (JavaScript) داشتیم. در مقاله امروز میخواهیم بیشتر وارد بحث جاوا اسکریپت شویم و ببینیم این زبان برنامه‌نویسی از کجا آمده و اصلاً آمدنش بهر چه بود؟ پس با ما باشید تا با مروری بر تاریخچه جاوا اسکریپت مقالۀ امروزمان را شروع کنیم.

مختصری از تاریخچۀ جاوا اسکریپت

زبان جاوا اسکریپت در سال 1995 توسط فردی به نام برندن آیک ساخته شد. برندن قبل از اینکه به فکر ساختن زبان جاوا اسکریپت بیافتد در کمپانی بزرگ Netscape مشغول به کار بود. شرکت Netscape در زمینه طراحی و توسعه مرورگرهای وب فعالیت می‌کرد و نخستین مرورگر آن Netscape Navigator (versions 1.03.0) نام دارد.

شرکت نت‌اسکیپ تا مدت‌ها قلمرو مرورگرهای وب را کاملاً زیر سلطۀ خودش درآورده بود و از این یکه‌تازی لذت می‌برد. اما ناگهان... شرکت مایکروسافت وارد عرصۀ رقابت با نت اسکیپ شد و در نهایت با قرار دادن مرورگر Internet Explorer در ویندوز – به عنوان مرورگر پیشفرض – به تهدیدی کشنده برای این کمپانی تبدیل شد.

البته Netscape شرکتی نبود که به این راحتی تسلیم شود، برای همین هم ابتدا به فکر استانداردسازی مرورگرها افتادند تا از دسترسی مایکروسافت به آن جلوگیری کنند، در اقدام بعدی نت‌اسکیپ پیشنها همکاری به شرکت بزرگ نرم‌افزاری Sun داد و هر دو با هم کار بر روی پروژه‌ای جدید را شروع کردند. پروژه جدید توسعۀ جاوا در مرورگرها و تلاش برای نوشتن یک زبان جدید برای لوازم هوشمند بود.

طی همین همکاری‌ها با کمپانی Sun بود که برندن آیک به فکر ساختن زبان جدیدی افتاد. زبان جدیدی که برندن آیک آن را ساخته بود همزمان با پشتیبانی مرورگرهای نت‌اسکیپ از زبان Java معرفی شد.

زبان جدید برندن ابتدا موکا (Mocha) نام گرفت اما بعد به LiveScript تغییر نام پیدا کرد و در نهایت JavaScript نامیده شد که امروزه ما هم آن را به همین نام می‌شناسیم. در ضمن جاوااسکریپت در سال 1996 به سازمان استاندارهای جهانی Ecma در حوزه فناوری فرستاده شد و با توجه به استاندارد ECMA-262 (استاندار زبان‌های اسکریپت نویسی) تکمیل و استانداردسازی شد. با این استاندارد، ECMA Script نیز گفته می‌شود. (برای آشنایی بیشتر با اکما اسکریپت و سازمان استانداردهای اکما مقالۀ « اکما اسکریپت چیست؟ » را بخوانید.)

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

JavaScript برای اولین بار در سال 1995 روی مرورگر Netscape 2.0 استفاده شد و امروزه توسط مرورگرهای زیادی از جمله Chrome، Safari، FireFox، Opera و همچنین مرورگر تلفن‌های هوشمند پشتیبانی می‌شود.

جاوا اسکریپت چه چیزی را به دنیای صفحات وب اضافه کرد؟

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

مثلث سه‌گانۀ صفحات وب چیست؟

صفحات وب از سه بخش اصلی تشکیل شده‌اند که عبارتند از:

معرفی جاوا اسکریپت

HTML

اچ‌تی‌ام‌ال یک زبان کامپیوتری است که برای طراحی سایت ساخته شده. HTML مخفف عبارت HyperText Markup Language و به عبارت دیگر، یک زبان نشانه‌گذاری Hypertext است. یعنی چه؟ یعنی مثلاً شما میتوانید روی یک لینک (Hyperlink) کلیک کنید و وارد صفحه یا سایت دیگری شوید.

اما بخش Markup یا نشانه‌گذاری HTML کدام است؟ تگ‌های HTML کار نشانه‌گذاری را انجام می‌دهند. مثلاً یک متن دارید و می‌خواهید آن را Bold کنید. با قرار دادن متن داخل تگ <b>، این کار انجام می‌شود.

<b>Some text</b>

به طور خلاصه، پایه یک صفحه وب HTML است و ساختار کلی سایت را می‌سازد.

CSS

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

JavaScript

جاوا اسکریپت یک زبان برنامه نویسی اسکریپتی یا یک زبان اسکریپ نویسی سمت کاربر (Client Side) است. JavaScript در کامپیوتر کاربران، روی مرورگر اجرا می‌شود و می‌تواند برخی اشیاء داخل HTML را تغییر دهد. همانطور که گفتیم، با HTML می‌توان ساختار یک صفحۀ وب را ایجاد کرد؛ اما این ساختار به خودی خود قابلیت ایجاد رابطه متقابل (Interaction) با کاربر را ندارد. اینجاست که زبان جاوا اسکریپت به کارمان می‌آید.

کدهای جاوا اسکریپت داخل یک تگ اچ تی ام ال  <script> تعریف می‌شود و از زمان اجرا تا پایان - که با </script> تمام می‌شود- به مرورگر نشان می‌هد که با یک کد جاوا اسکریپت طرف است.

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

برای مثال کار اعتبار سنجی فرم‌ها (مثل فرم ثبت نام کاربر در سایت) بر عهدۀ جاوا اسکریپت است. چگونه؟ فرض کنید فرم ما تعدادی فیلد از جمله نام، نام خانوادگی، رمز عبور وتکرار آن و ایمیل دارد. تشخیص فارسی بودن نام و نام خانوادگی، درست بودن فرمت ایمیل (مثلاً شامل @ بودن) و یکسان بودن هر دو فیلد رمز عبور بر عهده جاوا اسکریپت است. به این کار اعتبارسنجی (Validation) فرم می‌گویند.

مزایا و معایب زبان جاوا اسکریپت چیست؟

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

مزایای جاوا اسکریپت

  • افزایش تعامل با کاربران: مثلاً شما موس را روی کادر یا عکس می‌برید و روی آن گزینۀ افزودن به علاقه‌مندی ظاهر می‌شود، این کار جاوا اسکریپت است و سبب افزایش تعامل با شمای کاربر شده.
  • افزایش سرعت تعامل با کاربر: برای مثال شما محصولی را به سبد خرید اضافه می‌کنید. اضافه شدن محصول به سبد، بدون رفرش شدن صفحه انجام می‌شود و اگر خطایی رخ دهد آن را بلافاصله در همان صفحه می‌بینید. این نیز کار جاوا اسکریپت است.
  • ساخت انیمیشن: با ادغام کدهای جاوا اسکریپت و CSS می‌توانید انیمیشن‌های جذاب بسازید و یا به برخی قسمت‌های متن حالت متحرک (در حال تایپ شدن) بدهید.
  • بهبود رابط کاربری و تجربه کاربری: تمام ویژگی‌های جاوا اسکریپت که تا اینجا به آن اشاره کردیم، سبب بهبود رابطه کاربری و در پی آن، بهبود تجربه کاربری می‌شوند.

معایب جاوا اسکریپت

  • سختی خطایابی: چون جاوا اسکریپت یک زبان اسکریپت نویسی است، کامپایل نمی‌شود، برای همین هم پیدا کردن خطاهای احتمالی کار مشکلی است. فرض کنید 2000 خط کد نوشته‌اید و به خاطر یک خطای کوچک صفحه دچار مشکل شده؛ برای پیدا کردن این خطا مجبورید خط به خط کدها را با دقت بررسی کنید تا خطا پیدا شود.

حرف‌های آخر

اگر یادتان باشد گفتیم که جاوا اسکریپت آیندۀ وب است. یعنی چه؟ یعنی جاوا اسکریپت روز به روز در حال توسعه است و بسیاری از محدودیت‌های صفحات وب با تعریف کتابخانه‌های جدید آن مانند React، Angular و React Native از میان برداشته شده است.

با React و Angular می‌توان وب اپلیکیشن و وب سایت‌های تک صفحه‌ای (SPA) پیشرفته و پرسرعتی به وجود آورد که کاربر هنگام کار با آن‌ها، احساس کار کردن با نرم افزار داشته باشد (مانند نسخه وب تلگرام). ‌

با استفاده از کتابخانه React Native که توسط شرکت فیسبوک توسعه داده شده است ، میتوان بدون استفاده از زبان های اندروید و IOS و فقط با زبان های HTML ، CSS و جاوااسکریپت، اپلیکیشن‌های موبایل (هم برای سیستم عامل اندروید و هم برای سیستم عامل IOS) ساخت.

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

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