جاوا اسکریپت چیست؟
جاوا اسکریپت (JavaScript) چیست؟ چه ویژگی دارد؟ تفاوت میان زبان های سمت سرور و سمت کاربر در چه چیزهایی می باشد؟ آیا یادگیری این زبان فوایدی هم دارد؟
جاوا اسکریپت (JavaScript) محبوبترین زبان برنامهنویسی Client Side مبتنی بر شیگرایی میباشد که به وسیله NetScape آمریکا در سال 1995 ارائه و با EcmaScript استاندارد سازی شده است. نام انتخاب شده اولیه این زبان Mocha و سپس LiveScript بود که با پشتیبانی از جاوا در NetScape Navigator به JavaScript تغییر پیدا کرد. این زبان، یکی از زبانهای Client Side scripting language است و در نتیجه امکان دسترسی به شیهای Html و تغییر آنها در سطح Client را دارد.
همانند بیشتر زبانهای برنامهنویسی، ساختار اصلی این زبان نیز تا حدودی به C++ شباهت دارد. این زبان Prototype-based محسوب میشود و در آن شیها به عنوان مدل در نظر گرفته و به صورت وراثتی استفاده میشوند. کدهای جاوااسکریپت در هنگام اجرا درون Html وب سایت قرار میگیرند و در مرورگر کاربر اجرا میشوند؛ این موضوع باعث شده است برخی کاربران برای افزایش سرعت لود سایتها، اجرای این اسکریپت را در مرورگر خود بلاک کنند.
لازم به ذکر است که این نامگذاری مبتنی بر ارتباط جاوااسکریپت با جاوا نیست و شاید به گونهای انتخاب این نام ابزاری برای استفاده از محبوبیت جاوا و جذب مخاطب بیشتر برای جاوااسکریپت باشد. جاوا زبان پیشرفته Server Side ای است که به وسیله شرکت Sun Microsystem ارائه شده است؛ در حالیکه از جاوااسکریپت برای پردازش Client Side استفاده میشود. از جمله تفاوتهای دیگر این دو زبان میتوان به عدم کامپایل کدهای جاوا اسکریپت بر خلاف جاوا اشاره کرد.
کاربردهای جاوا اسکریپت
علاوه بر سادگی ساختار و امکانات بسیاری که این زبان برای برنامهنویسان ایجاد میکند، با ظهور Ajax کاربرد و ارزش جاوااسکریپت روز به روز بیشتر و توجه برنامهنویسان حرفهای به آن جلب شد. هر چند کاربرد اولیه این زبان برای صفحات وب بوده است اما امروزه در برنامههای موبایل هم جای خود را باز کرده است. سیستمعاملهای موبایل Android ,IOS ,BlackBerry و غیره، قابلیت اجرای برنامههای نوشته شده با جاوااسکریپت را دارند. همچنین از آن در طراحی بازیها و برنامهنویسی شبکه (Server Side(Node.js نیز استفاده میشود.
زبانهای برنامهنویسی به دو دسته Client Side و Server Side تقسیم میشوند. دسته اول ارتباطی با server ندارند و هیچگونه درخواستی از جانب آنها به server فرستاده نمیشود. کاربرد اصلی این زبانها برای گسترش و طراحی صفحات است و مانند جاوااسکریپت در مرورگر کاربر اجرا میشوند. از طرف دیگر دسته دوم، زبانهای server side با ارسال درخواست به server پردازش را به آن میسپارند و برای ارتباط با پایگاه داده و پویا کردن وب سایتها استفاده میشوند.
همانطور که بیان شد جاوااسکریپت یک زبان Client Side است اما پلتفرم node.js با بهرهگیری از یک کتابخانه HTTP server بدون نیاز به نرمافزارهای جانبی به برقراری ارتباط با server میپردازد و از جاوااسکریپت به عنوان زبان پیادهسازی اسکریپتهای خود استفاده میکند. پیشرفتهای اخیر node.js باعث افزایش چشمگیر کاربرد آن به عنوان یک زبان Server Side به جای .Net و PHP شده است.
ویژگیهای جاوااسکریپت
پس از Html و Css، جاوااسکریپت اصلیترین زبان مورد نیاز برای طراحی سایت است. بدیهی است با توجه به دامنه گسترده امکانات JavaScript و پشتیبانی تمامی مرورگرها از آن، امروزه علاوه بر استفاده از Html و Css یادگیری این زبان نیز برای هر طراح و برنامهنویس وب الزامی است. از جمله امکانات و ویژگیهای این زبان میتوان به نکات زیر اشاره کرد:
- امکان ویرایش کدها در هر نوع ویرایشگر متن بدون نیاز به نرمافزار خاص.
- پشتیبانی از بیشتر ساختارهای کنترلی مانند if, if-else, for, while, switch و غیره.
- حساسیت به حروف کوچک و بزرگ. (Case Sensitive)
- عدم نیاز به مشخص کردن تایپ متغیر در هنگام تعریف متغیر. (نوع هر متغیر با توجه به مقدار منتسب شده به آن در نظر گرفته میشود.)
- عدم نیاز به کامپایل و در نتیجه تغییر سریع خروجی به محض تغییر کد و Reload صفحه.
- انجام محاسبات ریاضی.
- دسترسی به مشخصههای هر قسمت از کد Html و حتی Cssهای آنها. (مانند تغییر در رنگ، فونت، اندازه متنها، ویژگیهای تصاویر و غیره)
- قابلیت تولید پویای کد Html در صورت نیاز.
- انیمیشنسازی و پویایی محتویات سایت.
- سادهسازی برخی از کدها نسبت به استفاده از Css. (مانند ایجاد منو، اسلایدر و غیره)
- کاهش بار ترافیک سرور به علت وجود امکان بررسی اطلاعات سیستمی کاربر بدون نیاز به یک زبان Server Side.
- کنترل مرورگر کاربر، تشخیص خصوصیات آن و نمایش مطالب سایت بر اساس اطلاعات به دست آمده.
- اعتبار سنجی نوع دادههای وارد شده به وسیله کاربر.
- تولید cookie مورد نیاز در سیستم کاربر و استفاده از آن.
- کنترل رویدادها و امکان تعریف کد در ازای اتفاق افتادن یک رویداد. (Event handle)
- ایجاد پیام و هشدار به کاربر بر مبنای دستور برنامه نویس.
کتابخانههای جاوااسکریپت
با گسترش کاربرد جاوااسکریپت همانند سایر زبانهای برنامهنویسی در جهت فراهم نمودن توابع و ابزارهای پرکاربرد، کتابخانههای این زبان منتشر شدند. انتخاب کتابخانه باید با توجه به نیاز شما صورت پذیرد. از جمله میتوان به Prototype ,midori ,Dojo Toolkit ,MooTools jsPHP ,PDF.js وjQuery اشاره کرد. بنا به کاربرد کتابخانهها دریکی از دسته بندیهای کلی زیر قرار میگیرند:
-
Animation
-
Application Tools
-
Audio
-
Development Aids
-
Dom
-
Forms
-
Games
-
Helpers
-
Images
-
Mobile and Touch
-
Data
-
Typography
-
User Interface
-
Video
-
Miscellaneous
محبوبترین کتابخانه jQuery است که استفاده از جاوااسکریپت را بسیار آسان میسازد. طراحی این کتابخانه بهگونهای است که روش استفاده ازدستورات جاوااسکریپت را تغییر میدهد. لازم به ذکر است که jQuery جایگزینی برای جاوااسکریپت محسوب نمیشود و تنها دستورات نحوی سادهتری را در اختیار برنامه نویس قرار میدهد (مانند فراخوانیهای Ajax). امروزه تقریبا برای انجام هر کاری میتوانید پلاگین مناسبی از jQuery پیدا کنید.
انواع دادهها در جاوااسکریپت
متغیر محلی از حافظه است که دارای نام، نوع، آدرس و مقدار است و میتواند مقادیر مورد نیاز را در خود ذخیره کند. همانطور که گفته شد جاوااسکریپتبه حروف کوچک و بزرگ حساس است و در صورت تعریف متغیر با هر کدام از این دو حالت، باید تا آخر به نام تعریف شده پایبند بود. یکی از نکات قابل بررسی در هر زبان برنامهنویسی، انواع داده (Data Type) است. نوع داده در جاوااسکریپت نیاز به تعریف ندارد و بنا بر مقدار منتسب شده، تشخیص داده میشود. تایپهای دادهای زیر در این زبان پشتیبانی میشود:
- اعداد صحیح و اعشاری (Number)
- صحیح و غلط (Boolean)
- متن (String)
- Undefined
- آرایه (Array)
- Null
- شی (Object)
- RegExp
نحوه نگارش دستورات
یادگیری نحوه استفاده از این زبان به علت شباهت کلی به زبانهای پایه مانند C++ ساده به نظر میرسد. ساختار نحوی به راحتی قابل درک است و با کمی تمرین در ذهن جای میگیرد. نگارش دستورات به دو روش کلی امکان پذیر است:
-استفاده از اسکریپت به روش internal در صفحه Html
-نوشتن کدها در فایل جداگانهای به عنوان روش external
در روش اول دستورات مابین تگ زیر قرار میگیرند و مستقیما در head صفحه نوشته میشوند در روش دوم دستورات در فایلی با پسوند js تعریف میشوند. سپس فایل مذکور با تگ زیر در head فایل اصلی فراخوانی خواهد شد که در آن src آدرس فایل js است.