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


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

برنامه نویسی چیست؟

جاوا اسکریپت چیست؟ اگر بخواهیم برنامه نویسی را در یک جمله معنی کنیم، برنامه نویسی یعنی این که شما به کامپیوتر دستور دهید تا کارهای مورد نظرتان را انجام دهد و شخصی که این دستور ها را به کامپیوتر می دهد برنامه نویس نام دارد.

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

یک نرم افزار چطور می تواند عملیات ریاضی انجام دهد؟

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

برنامه نویسی به صورت نوشتن کد انجام می شود. به این ترتیب که شما چند خط کد (دستور) را به کامپیوتر تحویل می دهید و کامپیوتر آن ها را به صورت خط به خط اجرا می کند.

به عنوان مثال فرض کنید قصد داریم برنامه ای بنویسیم که 2 عدد را دریافت کرده و مجموع آن ها را نمایش دهد.

کد های برنامه مورد نظر ما به این شکل خواهد بود:

عدد اول را دریافت کن.

عدد دوم را دریافت کن.

عدد اول و دوم را جمع کن.

نتیجه خط 3 را نمایش بده.

و …

به همین راحتی می توانیم در 4 خط برنامه ساده ای برای مجموع 2 عدد را پیاده سازی کنیم.

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

به عنوان مثال اپلیکیشن اینستاگرام را در نظر بگیرید.

اگر به قسمت اکسپلور (ذره بین) از اینستاگرام مراجعه کنید، به شما محتواهایی را نمایش می دهد که قبلا بیشترین علاقه را به آن ها دارید!

اینستاگرام از کجا می فهمد که شما چه محتوایی دوست دارید؟

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

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

قبل از بررسی تخصصی و پاسخ به سوال جاوا اسکریپت چیست، ابتدا باید انواع زبان های برنامه نویسی را بررسی کنیم.

به صورت کلی دو نوع زبان برنامه نویسی داریم:

زبان های برنامه نویسی کامپایلری (Compiler)

زبان های برنامه نویسی مفسری (Interpreter)

زبانی که کامپیوتر آن را می فهمد و با آن ارتباط برقرار می کند، زبان ماشین یا “صفر و یک” گفته می شود.

زبان ماشین به قدری سخت است که انسان ها نمی توانند به راحتی آن را بنویسند و با زبان ماشین به کامپیوتر دستورات مورد نظرشان را انتقال دهند.

برای همین منظور زبان هایی کد های قابل فهم برای انسان ایجاد شدند که به آن ها زبان های برنامه نویسی سطح بالا گفته می شود، مثل زبان های جاوا اسکریپت، پایتون و … .

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

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

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

نکته بعدی این است که به زبان های مفسری، زبان اسکریپتی نیز گفته می شود.

حال ممکن است برایتان سوال باشد که تفاوت زبان های کامپایلری با مفسری چیست!

تفاوت کامپایلر و مفسر در نحوه برخورد آن ها با کد های نوشته شده است.

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

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

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

در مقاله های بعدی به صورت مفصل در مورد تفاوت های کامپایلر و مفسر صحبت خواهیم کرد.

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

در ادامه مبحث جاوا اسکریپت چیست، به بررسی تاریخچه این زبان قدرتمند میپردازیم.

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

زبان جاوا اسکریپت در سال 1995 توسط آقای براندان ایچ ارائه شد.

قبل از سال 1995 تمام وب سایت ها با Html و Css پیاده سازی می شدند که در این حالت امکان داینامیک سازی (پویا سازی) صفحات وب وجود نداشت.

زبان جاوا اسکریپت با هدف داینامیک سازی صفحات وب ارائه شد.

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

فرانت انت Vs بک اند

در این قسمت قصد داریم در مورد فرانت اند (سمت کلاینت) و بک اند (سمت سرور) صحبت کنیم.

برنامه نویسی وب به طور کلی به دو قسمت فرانت اند و بک اند تقسیم می شود.

فرانت اند قسمتی از وب سایت است که توسط کاربر قابل مشاهده بوده و کاربر می تواند آن قسمت را ببیند.

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

به عنوان مثال تصویر زیر از وی سایت دیجی کالا را مشاهده کنید:

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

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

نقطه مقابل مفهوم فرانت اند، مفهوم بک اند وجود دارد. بک اند قسمتی از وب سایت را شامل می شود که کاربر قادر به مشاهده آن نیست.

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

جواب مثبت است. خیلی از قسمت هایی از هر وب سایت وجود دارند که کاربر به هیچ وجه قادر به مشاهده آن ها نیست.

برای درک بهتر موضوع، تصویر زیر از دیجی کالا را مشاهده کنید:

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

سوال اینجاست که دیجی کالا از کجا و چطور تشخیص می دهد که شما در وب سایت ثبت نام کردید یا نه؟!

چه بلایی سر شماره تلفن شما می آید تا نتیجه لاگین مشخص شود؟

کاربر قادر به مشاهده هیچ کدام یک از این موارد نیست. دقیقا همین قسمت ها از هر وب سایت، بک اند آن وب سایت را تشکیل می دهند.

کاربرد های جاوا اسکریپت

در ادامه مبحث جاوا اسکریپت چیست، به بررسی کاربردهای این زبان می پردازیم.

همان طور که بالاتر گفته شد، جاوا اسکریپت در سال 1995 با هدف داینامیک کردن صفحات وب ارائه شد. پس در نتیجه کاربرد اصلی جاوا اسکریپت در حوزه برنامه نویسی فرانت اند می باشد.

به کمک جاوا اسکریپت می توانید به وب سایت خود عملکرد های مختلف تعریف کرده تا وب سایت شما در موقعیت های واکنش های مختلف داشته باشد، کاری که با Html و Css قادر به انجام آن نیستید.

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

مثال واضح تر این که اگر در یک وب سایت فروشگاهی کاربر روی دکمه “اضافه کردن به سبد خرید” از یک محصول کلیک کرد، آن محصول به سبد خرید کاربر اضافه شده و مبلغ کل سبد خرید محاسبه شود.

تمام این کارها به کمک زبان عزیز جاوا اسکریپت اتفاق می افتد.

همان طور که متوجه شدید جاوا اسکریپت یک زبان برنامه نویسی سمت کلاینت (فرانت اند) می باشد.

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

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

پس در این قسمت با دیگر کاربرد های جاوا اسکریپت آشنا شدیم.

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

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

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

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

به عنوان مثال پارامتر هایی مثل:

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

چقدر در زبان انگلیسی مهارت دارید؟

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

چه اندازه ذهن تحلیلگر و قوه حل مسئله بالایی دارید؟

چند درصد از مشکلات خود را با سرچ برطرف می کنید؟

و …

تمام این پارامتر ها در مدت زمان یادگیری جاوا اسکریپت برای هر شخص تاثیر دارند و نمی توان به این سوال جواب دقیق و ثابتی را ارائه کرد.

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

در این قسمت قصد داریم در مورد منابع یادگیری جاوا اسکریپت صحبت کنیم.

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

کتابخانه های جاوا اسکریپت

در این قسمت قصد داریم در مورد کتابخانه های جاوا اسکریپت صحبت کنیم. ممکن است چندین بار کلمه کتابخانه را در حوزه برنامه نویسی شنیده باشید.

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

به عنوان مثال فرض کنید قصد دارید عمل x را انجام دهید و حجم کد هایی که برای انجام عمل x نیاز دارید 100 خط است.شما می توانید به جای این که خودتان این 100 خط کد را بنویسید، از کتابخانه ای استفاده کنید که عمل x را برای شما انجام دهد.در اصل هدف از کتابخانه ها سهولت در کار و بالا بردن سرعت توسعه برنامه نویسان است.از کتابخانه های پر استفاده و محبوب جاوا اسکریپت می توان به ری اکت، جی کوئری، اکسیوس و … اشاره کرد. در مقاله های بعدی به طور مفصل در مورد کتابخانه های جاوا اسکریپت صحبت خواهیم کرد.

منبع:

https://sabzlearn.ir/what-is-javascript/