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

دسته بندی: جاوا اسکریپت
سطح مقاله: ساده
زمان مطالعه: ۱۴ دقیقه
۰۱ مرداد ۱۳۹۸

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

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

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

جالب است بدانید که Java Script که به اختصار JS نیز نامیده می شود، یکی از محبوبترین زبان های برنامه نویسی است. جاوا اسکریپت زبانی سطح بالا، داینامیک، مبتنی بر شی و تفسیری است که از شیوه های مختلف برنامه نویسی پشتیبانی می کند. از این زبان می توان برای برنامه نویسی سمت سرور (Server Side)، اپلیکیشن های موبایل، بازی و اپلیکیشن های دسکتاپ استفاده کرد. بنابراین می توان اینگونه برداشت کرد که زبان برنامه نویسی جاوا اسکریپت ، یک زبان همه فن حریف است.

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

همانطور که می دانید کامپیوترها تنها به زبان صفر و یک (Binary) صحبت می کنند و زبان دیگری را متوجه نمی شوند. ما در ابتدا برای برقراری ارتباط با ماشین ها سعی کردیم به زبان خود آنها، یعنی زبانی که به زبان صفر و یک نزدیک تر است، صحبت کنیم. به این نوع زبان ها که به صورت مستقیم با پردازنده در ارتباط اند، در اصطلاح، زبان های سطح پایین (Low Level) گفته می شود. از جمله این زبان ها می توان به اسمبلی اشاره کرد.

اما یادگیری و تسلط به این زبان ها برای برنامه نویسان فوق العاده سخت بود. بنابراین متخصصین تصمیم به ساخت زبان هایی گرفتند که به زبان انسان ها نزدیک تر باشد. در اصطلاح به این زبان ها، زبان های سطح بالا (High Level) می گویند. زبان های سطح بالایی مانند JavaScript کار را برای برنامه نویسان ساده تر کردند، زیرا ساختار نوشتاری و منطق آن ها بسیار به زبان انسان ها نزدیک تر شده است. پس می توان اینگونه نتیجه گرفت که آموزش جاوا اسکریپت نسبت به سایر زبان های برنامه نویسی سطح پایین ساده تر است.

what is java script

همانطور که دیدید در تعریف زبان برنامه نویسی جاوا اسکریپت به این نکته اشاره شد که این زبان از نوع زبان های مفسری است. برای درک ماهیت زبان های برنامه نویسی مفسری ابتدا فکر کنید که شما یک مترجم هستید. برای ترجمه یک متن، دو راه بیشتر ندارید. یا باید آنچه را دریافت می کنید به صورت خط به خط و همزمان ترجمه کنید، یا کل مطلب را یک جا ترجمه کنید. این دقیقا همان تفاوت میان زبان های مفسری (Interpreter) و زبان های کامپایلری (Compiled) است.

زبان های برنامه نویسی مفسری چه نوع زبان هایی هستند؟

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

زبان های برنامه نویسی کامپایلری به چه زبان هایی می گویند؟

اجازه دهید کمی بیشتر و تخصصی تر در این باره توضیح دهیم. در زبان های کامپایل شده تمام سورس کدها به یکباره کامپایل (ترجمه) شده و به صورت کامل پردازش و اجرا می شوند. خروجی ای که کامپایلر در اختیار شما قرار می دهد یک فایل کامپایل شده برای سیستم عامل مورد نظر شما است که هیچ وابستگی به کدهای نوشته شده ندارند. در واقع زبان های کامپایلری به سیستم عامل وابسته هستند و امکان استفاده از کدهای کامپایل شده بر روی سیستم عامل دیگری وجود ندارد.

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

شی گرایی در جاوا اسکریپت

شی گرایی یک الگو و شیوه تفکر در برنامه نویسی است. رویکرد برنامه نویسی شی گرا از جزء به کل یا پایین به بالا است (Bottom-Up). یعنی در ابتدا واحد های کوچکی از برنامه ایجاد میشوند و با پیوند این واحدهای کوچک به یکدیگر، واحدهای بزرگ تر شکل می گیرند و به همین ترتیب برنامه کامل تر می شود. برنامه نویسی شی گرا دو مفهوم کلاس (Class) و شی (Object) را ارائه می دهد.

شی گرایی در برنامه نویسی می تواند مشکلات زیادی را برای شما حل کند و باعث ساده تر شدن فرآیند کدنویسی شود. از آنجایی که مفاهیم شی گرایی به شدت به دنیای واقعی نزدیک است، درک آن برای برنامه نویس آسان خواهد بود. در شی گرایی برخلاف روش های کدنویسی دیگر مانند رویه ای به جای دست و پنجه نرم کردن با تعداد زیادی متغیر و توابع، مستقیما با اشیا (Objects) کار می کنید. برای درک بهتر این موضوع بهتر است با مثالی این مطلب را توضیح دهیم.

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

زبان های سمت سرور و سمت کاربر چه تفاوتی هایی دارند؟

پردازش و اجرای برخی زبان ها بر روی سرور (سایت) صورت می گیرد و سپس نتیجه به سوی کاربر ارسال می شود. این زبان ها برای برقراری ارتباط به نرم افزاری احتیاج دارند که به آن وب سرور گفته می شود. اما نکته جالبی که در مورد زبان JavaScript وجود دارد این است که از این زبان می توان هم برای برنامه نویسی سمت سرور و هم سمت کاربر استفاده کرد. اما در گذشته قلمروی این زبان تنها به برنامه نویسی سمت کاربر محدود می شد. کدهای زبان های برنامه نویسی سمت کاربر همانطور که از اسمش مشخص است در سیستم کاربر پردازش و اجرا می شوند.

نکته :

جاوا اسکریپت یک زبان سطح بالا و مفسری است که از شی گرایی پشتیبانی می‌کند. این زبان در سمت کاربر پردازش و اجرا می شود. البته با کمک فریم ورک هایی مانند Node.JS و Express.JS می توان به عنوان زبان سمت سرور هم از این زبان استفاده شود. اگر مایل هستید اطلاعات بیشتری در مورد فریم فورک های جاوا اسکریپت داشته باشید می توانید مقاله زیر را مطالعه کنید.

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

زبان های برنامه نویسی

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

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

  • برنامه نویسی فرانت اند
  • برنامه نویسی بک اند با جاوا اسکریپت
  • برنامه نویسی نرم افزارهای موبایل
  • برنامه نویسی نرم افزارهای دسکتاپ

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

حال که دیدیم جاوا اسکریپت چیست و چه کاربرد هایی دارد، شاید این سوال برای شما پیش آمده باشد که جاوا اسکریپت چگونه در مرورگر های مختلف اجرا می شود؟ جواب این سوال موتورهای پردازشی (Engine) هستند. مرورگرهای مختلف برای اجرای کدهای جاوااسکریپت از موتورهای مختلفی استفاده می کنند که در ادامه به برخی از آنها اشاره می کنیم.

  • موتور V8 برای مرورگرهای اپرا و کروم
  • موتور SpiderMonkey برای فایرفاکس
  • موتورهای Trident و Chakra برای ورژن های مختلف اینترنت اکسپلورر
  • موتور ChakraCore برای مرورگر Edge
  • موتورهای Nitro و SquirrelFish برای مرورگر سافاری

این موتورها در ابتدا کدهای جاوا اسکریپت را ترجمه می کنند. سپس اسکریپت ها را به زبان ماشین کامپایل می کنند تا در نهایت کدها اجرا شوند. البته این موضوع به این معنی نیست که زبان جاوا اسکریپت تنها بر روی مرورگرهای وب اجرا می شود. این زبان برنامه نویسی تقریبا بر روی تمام پلتفرم ها با استفاده از JavaScript Virtual Machine قابل اجرا است.

تاریخچه جاوا اسکریپت

فریم ورک های js

جاوا اسکریپت اولین بار در می 1995 در 10 روز توسط برندن ایچ، یکی از کارکنان شرکت Netscape متولد شد! در ابتدا این شرکت به این نتیجه رسیده بود که به صفحات وب پویا و جذاب تری احتیاج دارد. این اولین قدم به سوی ساخت زبانی ساده بود. آقای براندان ایچ از طرف این شرکت مامور شد که زبانی اسکریپتی برای صفحات وب و دست بردن در کدهای HTML بسازد. ماموریت آقای ایچ این بود زبانی را ارائه کند که نه تنها متخصصان برنامه نویسی از آن استقبال کنند، بلکه به راحتی مورد استفاده طراحان هم باشد.

این شرکت در ابتدا به فکر ارتقا و ساده سازی زبان Schema افتاد اما در نهایت به این نتیجه رسید که به زبانی شبیه جاوا اما با سینتکس ساده تر احتیاج دارد. در ابتدای کار اسم این زبان برنامه نویسی Mocha بود که بعد به Mona تغییر پیدا کرد. در سپتامبر همان سال اسم این زبان به LiveScript تغییر کرد و در آخر سریال تغییر اسم با انتخاب اسم JavaScript به اتمام  رسید.

نهایی شدن این اسم تنها به این دلیل بود که در آن روز ها زبان برنامه نویسی Java بسیار پرطرفدار شده بود. انتخاب این نام برای این زبان بسیار هوشمندانه بود. زیرا در آن زمان  این زبان با انتخاب این نام، توانست سهم زیادی از بازار جاوا را به خود اختصاص دهد. به هر حال در سال 1996 جاوا اسکریپت برای استاندارد شدن به سازمان ECMA سپرده شد. در نهایت اولین استاندارد جاوا اسکریپت با نام ECMAScript در سال 1997 منتشر شد. اولین اکما اسکریپت ECMA-262 و آخرین ورژن آن با اسم ECMAScript 2017 در ژوئن 2017 منتشر شد.

نقاط قوت جاوا اسکریپت چه مواردی هستند؟

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

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

نقاط ضعف جاوا اسکریپت کدام اند؟

 برخی از ضعف های این زبان برنامه نویسی عبارتند از :

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

نتیجه گیری

در نهایت اگر تصمیم به یادگیری این زبان گرفته اید به شما تبریک می گوییم. چرا که جاوا اسکریپت در واقع تنها یک زبان برنامه نویسی سمت کاربر (Client Side) نیست. پیش بینی ها نشان می دهند در آینده ای نه چندان دور همه چیز به سمت بستر وب تعاملی خواهد رفت و این یعنی ما بیش از پیش به زبانی مانند جاوا اسکریپت نیاز خواهیم داشت که بتواند پاسخگوی تمام خواسته های ما باشد.

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

اگر تصمیم گرفته اید به یک متخصص جاوا اسکریپت تمام عیار تبدیل شوید در دوره های مختصص جاوا اسکریپت با ما همراه شوید.

اگر می خواهید بیشتر درباره برنامه نویسی جاوا اسکریپت مطالعه کنید مقالات زیر را دنبال کنید 

 

نویسنده
عاشق برنامه نویس و نوشتن

نظرات کاربران

حسین

سلام
برای برنامه نویسی بک اند ازش استفاده کنیم؟

مصطفی قدیمی

سلام بله
شما با استفاده از Node JS میتونید برای سمت سرور هم برنامه نویسی کنید

alirezax61

سلام . خسته نباشید . آیا زبان جاوااسکریپت با زبان جاوا ارتباطی داره ؟ سپاس

مهدی علامه

سلام
تشکر
خیر، ارتباطی با هم ندارند
علت تشابه نام این دو زبان در مطلب بالا اشاره شده است

fateme afshar

سلام وقتتون به خیر
مقاله ای کامل و عالی …
متشکرم ازتون خانم فرحمند

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :

 
گزارش مشکل