آشنایی با جاوا اسکریپت (بخش اول)
زبان برنامه نویسی جاوا اسکریپت چیست؟
JavaScript که به اختصار JS نیز نامیده میشود، یکی از محبوبترین زبانهای برنامه نویسی است. جاوا اسکریپت زبانی سطح بالا، داینامیک، شیگرا و تفسیری است که از شیوههای مختلف برنامه نویسی پشتیبانی میکند. از این زبان میتوان برای برنامه نویسی سمت سرور (Server Side) ، اپلیکیشنهای موبایل، بازی و اپلیکیشنهای دسکتاپ استفاده کرد. بنابراین میتوان اینگونه برداشت کرد که زبان برنامه نویسی جاوا اسکریپت ، یک زبان همه فن حریف است.
اگر با هر یک از این اصطلاحات آشنایی ندارید نگران نباشید، زیرا در ادامه به توضیح هر یک از آنها خواهیم پرداخت. برای اینکه بهتر متوجه چیستی زبان جاوا اسکریپت شوید، در ابتدا باید جواب سوالاتی مانند زبان کامپایلری چیست و چه تفاوتی با زبان مفسری دارد؟، زبان برنامه نویسی سمت سرور و سمت کاربر به چه نوع زبانهایی گفته میشود؟ را بدانید. پس از درک این مفاهیم میتوانید آموزش جاوا اسکریپت را شروع کنید.
همانطور که میدانید کامپیوترها تنها به زبان صفر و یک (Binary) صحبت میکنند و زبان دیگری را متوجه نمیشوند. ما در ابتدا برای برقراری ارتباط با ماشینها سعی کردیم به زبان خود آنها، یعنی زبانی که به زبان صفر و یک نزدیکتر است، صحبت کنیم. به این نوع زبانها که به صورت مستقیم با پردازنده در ارتباطاند، در اصطلاح، زبانهای سطح پایین (Low Level) گفته میشود. از جمله این زبانها میتوان به اسمبلی اشاره کرد.
اما یادگیری و تسلط به این زبانها برای برنامه نویسان فوق العاده سخت بود. بنابراین متخصصین تصمیم به ساخت زبانهایی گرفتند که به زبان انسانها نزدیکتر باشد. در اصطلاح به این زبانها، زبانهای سطح بالا (High Level) میگویند. زبانهای سطح بالایی مانند JavaScript کار را برای برنامهنویسان سادهتر کردند، زیرا ساختار نوشتاری و منطق آنها بسیار به زبان انسانها نزدیکتر شده است. پس میتوان اینگونه نتیجه گرفت که آموزش جاوا اسکریپت نسبت به سایر زبانهای برنامه نویسی سطح پایین سادهتر است.
همانطور که دیدید در تعریف زبان برنامه نویسی جاوا اسکریپت به این نکته اشاره شد که این زبان از نوع زبانهای مفسری است. برای درک ماهیت زبانهای برنامه نویسی مفسری ابتدا فکر کنید که شما یک مترجم هستید. برای ترجمه یک متن، دو راه بیشتر ندارید. یا باید آنچه را دریافت میکنید به صورت خط به خط و همزمان ترجمه کنید، یا کل مطلب را یک جا ترجمه کنید. این دقیقا همان تفاوت میان زبانهای مفسری (Interpreter) و زبانهای کامپایلری (Compiled) است.
جاوا اسکریپت یک زبان اسکریپت نویسی مبتنی بر اشیا و سطح بالا است که کاربرد های گسترده ای در طراحی تارنما ها و صفحات اینترنتی ج��ت بهبود کارایی و شکل دهی به ظاهر صفحات وب دارد . با کمک جاوا اسکریپت می توانید به صفحات HTML ویژگی های تعاملی و ایجاد واکنش به رویدادها را اضافه کنید و اطلاعات نمون برگ ها را ثبت و ارسال کنید .
با استفاده از زبان جاوا اسکریپت میتوانیم محتوای صفحه وب ، ویژگی عناصر و استایل شیتها را تغییر دهیم . حاال این سؤال مطرح میشود که چگونه زبان جاوا اسکریپت به عناصر یک صفحه وب دسترسی دارد ؟ زمانــی کــه یــک صفحــۀ وب بارگــذاری میشــود ، مرورگــر از آن صفحــه ، یــک مــدل شــیءگرا ((Dom (Model Object Document )ایجاد میکند و جاوا اسکریپت از طریق این مدل میتواند به تمام عناصر HTML صفحه وب دسترسی داشته باشد. در این مدل هر یک از عناصر HTML یک شیء محسوب میشود.
اشیا مدل DOM و متد های ان
مدل DOM یک نگاشت از تک تک عناصر و ویژگی های صفحه وب به اشیا در زبان جاوا اسکریپت را بیان می کند . با استفاده از این اشیا میتوانید همه عناصر صفحه وب را تغییر دهید و رویداد ها را به صورت پویا به عناصر HTML اختصاص دهید
ساختار سلسله مراتبی DOM را نشان میدهد. در اين مدل شیء Window به عنوان شیء اصلی و والد يک سند HTML محسوب میشود و هر شیء زیر مجموعهای دارد تا به پایینترین رده یعنی عناصر برسد. شیء Window دارای3 زير شاخه يا فرزند اصلی، به نامهای history ، document و location است. ـ شیء document : شامل محتوای اصلی يک صفحه HTML بوده، در برگيرنده همه عناصر مانند متن، نوشته و ... است که به وسيله برچسبهای HTML ايجاد شده اند . اين شیء دارای 2 زير شاخۀ اصلی به نام head و body است. اين دو شیء نيز به نوبه خود دارای زير شاخههای ديگر هستند
. ـ شیء location : در برگيرنده اطالعات کلی درباره URL يا آدرس اينترنتی صفحه است.
ـ شیء history : شامل اطالعاتی درباره آدرس (URL) صفحات مشاهده شده به وسیله کاربر است.
شی گرایی در جاوا اسکریپت به چه معنی است؟
شی گرایی یک الگو و شیوه تفکر در برنامه نویسی است. رویکرد برنامه نویسی شی گرا از جزء به کل یا پایین به بالا است (Bottom-Up). یعنی در ابتدا واحدهای کوچکی از برنامه ایجاد میشوند و با پیوند این واحدهای کوچک به یکدیگر، واحدهای بزرگتر شکل میگیرند و به همین ترتیب برنامه کاملتر میشود. برنامه نویسی شی گرا دو مفهوم کلاس (Class) و شی (Object) را ارائه میدهد.
شی گرایی در برنامه نویسی میتواند مشکلات زیادی را برای شما حل کند و باعث سادهتر شدن فرآیند کدنویسی شود. از آنجایی که مفاهیم شی گرایی به شدت به دنیای واقعی نزدیک است، درک آن برای برنامه نویس آسان خواهد بود. در شی گرایی برخلاف روشهای کدنویسی دیگر مانند رویه ای به جای دست و پنجه نرمکردن با تعداد زیادی متغیر و توابع، مستقیما با اشیا (Objects) کار میکنید. برای درک بهتر این موضوع بهتر است با مثالی این مطلب را توضیح دهیم.
کارگاهی را در نظر بگیرید که دارای دستگاههای تولیدی مختلف است. این کارگاه را میتوان به عنوان یک کلاس در نظر گرفت. هر یک از این دستگاهها محصول متفاوتی تولید میکنند که میتوان آنها را به عنوان شی در نظر گرفت. اگر برای محصولات مشکلی پیش بیاید یا اگر بخواهیم تغییر در آنها ایجاد کنیم نیازی به تخریب و از نو ساختن کارگاه نیست.
به عنوان مثال اگر محصول خروجی کیک باشد، زمانیکه بخواهیم کیک شیرینتری داشته باشیم لازم نیست تغییری در کارگاه یا دستگاهها ایجاد کنیم، کافیست کمی شکر به خمیر کیک اضافه کنیم. این دقیقا همان اتفاقی است که در برنامه نویسی شی گرا میافتد.
زبان جاوا اسکریپت دارای اشیا ، متد، رویداد و ویژگیهای مختلفی است.
ـ ویژگی : هر شیء عالوه بر متد دارای ویژگیهایی است
زبانهای برنامه نویسی مفسری چه نوع زبان هایی هستند؟
در زبانهای مفسری (Interpreted) سورس کد به صورت خط به خط تفسیر میشود یعنی پس از تفسیر و اجرای خط اول به خط دوم میرود که این روند باعث کند شدن پروسه اجرا میشود. این زبانها برعکس زبان کامپایلری به سیستمعامل وابسته نیستند چرا که به صورت همزمان و از طریق مفسر، اجرا میشوند.