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

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

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

20 دقیقه مطالعه ۳۱ خرداد ۱۴۰۲ 528 بازدید مرتضی رستمیان
تصویر مقاله جاوا اسکریپت چیست؟
برنامه‌نویسی فرانت‌اند و توسعه وب

جاوا اسکریپت چیست؟ از اولین تعامل در صفحه تا ساخت پروژه‌های واقعی وب

با HTML و CSS می‌شود یک صفحه مرتب و خوش‌ظاهر ساخت؛ اما همین که بخواهید صفحه به کاربر واکنش نشان بدهد، ماجرا عوض می‌شود. کلیک روی دکمه، بررسی فرم، گرفتن اطلاعات تازه از سرور یا تغییر بخشی از صفحه بدون بارگذاری دوباره، همان جاهایی هستند که JavaScript خودش را نشان می‌دهد.

اینجا قرار نیست JavaScript را با چند تعریف خشک و حفظ‌کردنی توضیح بدهیم. قدم‌به‌قدم می‌بینیم در یک سایت واقعی چه کاری انجام می‌دهد، چه فرقی با HTML و CSS دارد و اگر تازه وارد فرانت‌اند شده‌اید، بهتر است یادگیری آن را از کجا شروع کنید.

برنامه نویسی وب و کدنویسی با لپ تاپ
Wikimedia Commons — CC0
در یک جمله
JavaScript همان چیزی است که به صفحه وب رفتار و منطق می‌دهد.

با JavaScript می‌شود کاری کرد صفحه واقعاً زنده باشد؛ از واکنش به کلیک کاربر و بررسی فرم گرفته تا دریافت داده از سرور و تغییر محتوا بدون اینکه کل صفحه دوباره بارگذاری شود.

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

اگر بخواهیم خیلی ساده بگوییم، JavaScript زبان برنامه‌نویسی‌ای است که به صفحه وب رفتار می‌دهد. HTML اجزای صفحه را می‌چیند و CSS ظاهرشان را مشخص می‌کند؛ JavaScript وارد می‌شود تا آن اجزا بتوانند به کلیک، تایپ، داده و اتفاق‌های مختلف واکنش نشان بدهند.

مثلاً روی «نمایش بیشتر» می‌زنید و ادامه متن باز می‌شود؛ محصولی را به سبد خرید اضافه می‌کنید و عدد کنار سبد همان لحظه عوض می‌شود؛ یا ایمیل را اشتباه وارد می‌کنید و فرم قبل از ارسال به شما هشدار می‌دهد. این‌ها اتفاق‌های کوچکی هستند، اما دقیقاً نشان می‌دهند JavaScript در صفحه چه نقشی دارد.

وقتی پروژه بزرگ‌تر می‌شود، نقش JavaScript هم جدی‌تر می‌شود: مدیریت State، کار با API، کنترل بخش‌های مختلف رابط کاربری و ساخت اپلیکیشن‌های کامل وب. ممکن است یادگیری را با تغییر متن یک دکمه شروع کنید، اما همین زبان بعداً بخش مهمی از یک پروژه واقعی را مدیریت می‌کند.

سه پایه اصلی فرانت‌اند

HTML، CSS و JavaScript چه فرقی با هم دارند؟

گاهی در شروع این سه اسم کنار هم کمی گیج‌کننده‌اند، اما در عمل هرکدام کار خودش را دارد. HTML ساختار را می‌سازد، CSS ظاهر را شکل می‌دهد و JavaScript رفتار صفحه را کنترل می‌کند. وقتی این تقسیم کار را بفهمید، تصویر فرانت‌اند خیلی روشن‌تر می‌شود.

HTML

ساختار صفحه

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

CSS

ظاهر و چیدمان

CSS همان ساختار را مرتب و قابل‌دیدن می‌کند؛ رنگ‌ها، فاصله‌ها، اندازه‌ها، چیدمان، انیمیشن و حتی اینکه صفحه روی موبایل چه شکلی باشد، اینجا کنترل می‌شود.

JavaScript

رفتار و منطق

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

یک مثال ساده: دکمه «افزودن به سبد خرید»

یک فروشگاه اینترنتی را تصور کنید. دکمه «افزودن به سبد خرید» با HTML داخل صفحه قرار گرفته و ظاهرش را CSS ساخته است. اما وقتی روی آن کلیک می‌کنید و تعداد کالاهای سبد همان لحظه بالا می‌رود یا پیام «به سبد اضافه شد» ظاهر می‌شود، این بخش دیگر کار JavaScript است.

به همین دلیل JavaScript معمولاً قدم بعدی بعد از HTML و CSS است. تا اینجا صفحه را ساخته‌اید و ظاهرش را مرتب کرده‌اید؛ حالا وقتش رسیده کاری کنید واقعاً به کاربر پاسخ بدهد.

نمونه کد JavaScript
JavaScript Code — Wikimedia Commons — CC0

JavaScript در یک سایت واقعاً چه کارهایی انجام می‌دهد؟

برای دیدن کاربرد JavaScript لازم نیست دنبال مثال عجیب بگردیم. کافی است به سایت‌هایی که هر روز باز می‌کنید نگاه کنید؛ خیلی از امکاناتی که کاملاً عادی به نظر می‌رسند، پشت صحنه با JavaScript کنترل می‌شوند.

منوهای تعاملی

منوی موبایل، Dropdown و بخش‌هایی که با کلیک یا لمس باز و بسته می‌شوند، نمونه‌های ساده و روزمره آن هستند.

اعتبارسنجی فرم

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

تغییر محتوا

می‌توانید یک پیام نشان دهید، آیتمی اضافه کنید، نتایج را فیلتر کنید یا فقط همان بخش لازم از صفحه را تغییر دهید؛ بدون Reload کامل.

ارتباط با API

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

چرا JavaScript در مسیر فرانت‌اند این‌قدر مهم است؟

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

از طرفی React و Next.js هم روی JavaScript بنا شده‌اند. اگر خیلی زود سراغ آن‌ها بروید، ممکن است مثال‌ها را اجرا کنید، اما وقتی چیزی خراب شد یا پروژه کمی با آموزش فرق داشت، پیدا کردن دلیل خطا سخت می‌شود.

برای همین بهتر است JavaScript را فقط یک مرحله بین CSS و React نبینید. پایه‌ای است که هرچه در فرانت‌اند جلوتر بروید، بیشتر به آن برمی‌گردید.

مسیر پیشنهادی یادگیری

برای یادگیری JavaScript از کجا شروع کنیم؟

یکی از اشتباه‌های رایج این است که هنوز با خود JavaScript راحت نشده‌ایم، اما سریع سراغ Framework می‌رویم. مسیر کم‌دردسرتر این است که هر بخش را با چند تمرین واقعی جا بیندازید و بعد مرحله بعد را شروع کنید.

01

HTML و CSS را در حد کاربردی بشناسید

قرار نیست قبل از JavaScript متخصص HTML و CSS باشید؛ همین که بتوانید ساختار یک صفحه را بخوانید و استایل‌های پایه را بفهمید، برای شروع کافی است.

02

مفاهیم اصلی زبان را تمرین کنید

متغیر، نوع داده، شرط، حلقه، Function، Array و Object را با دست خودتان تمرین کنید. خواندن تعریف خوب است، اما تا کد ننویسید خیلی از این مفاهیم ماندگار نمی‌شوند.

03

DOM و رویدادها را یاد بگیرید

با DOM تازه ارتباط JavaScript و خود صفحه را از نزدیک می‌بینید؛ عنصرها را پیدا می‌کنید، تغییرشان می‌دهید و به اتفاق‌هایی مثل Click و Input پاسخ می‌دهید.

04

پروژه‌های کوچک بسازید

یک To-do List، فرم اعتبارسنجی، ماشین‌حساب ساده یا صفحه‌ای که از API اطلاعات می‌گیرد، پروژه‌های خوبی هستند چون مجبور می‌شوید چند مفهوم را واقعاً کنار هم استفاده کنید.

05

بعد از پایه، React و Next.js

وقتی دیگر برای نوشتن JavaScript پایه مدام دنبال نمونه آماده نمی‌گردید، رفتن سراغ React و Next.js منطقی‌تر می‌شود و کدی که می‌بینید هم برایتان قابل‌فهم‌تر خواهد بود.

JavaScript را باید نوشت؛ فقط خواندن کافی نیست

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

بعد از هر مبحث، همان مثال را دستکاری کنید. اگر دکمه‌ای برای نمایش متن ساخته‌اید، کاری کنید چند بخش را کنترل کند. اگر از API داده گرفته‌اید، یک Loading یا فیلتر ساده هم اضافه کنید. همین تغییرهای کوچک خیلی بیشتر از تکرار عین آموزش کمک می‌کنند.

ممکن است این روش در چند روز اول کندتر باشد، اما نتیجه‌اش این است که کم‌کم به جای کپی کردن کد، خودتان می‌فهمید از کجا باید مسئله را باز کنید.

تمرین برنامه نویسی و توسعه وب
Wikimedia Commons — CC0

JavaScript همان Java است؟

نه؛ فقط اسمشان شبیه هم است. Java و JavaScript دو زبان جدا با کاربردها، ابزارها و اکوسیستم متفاوت هستند و نباید آن‌ها را نسخه‌های مختلف یک زبان در نظر گرفت.

JavaScript از ابتدا پیوند نزدیکی با وب و مرورگر داشته است. Java هم زبان مهم و پرکاربردی است، اما اگر هدفتان فرانت‌اند است، زبانی که در این مرحله به آن نیاز دارید JavaScript است.

یادگیری JavaScript چقدر سخت است؟

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

چیزی که بیشتر از خود زبان دردسر درست می‌کند، رد شدن سریع از سرفصل‌هاست. ممکن است ساعت‌ها ویدئو دیده باشید، اما اگر تمرین نکرده باشید هنوز برای شروع یک پروژه ساده از صفر مکث کنید.

تعادل را کمی به سمت کدنویسی ببرید: آموزش کمتر، تمرین بیشتر. یک پروژه کوچک که با اشتباه و اصلاح خودتان ساخته‌اید، معمولاً بیشتر از ده‌ها مثال آماده در ذهنتان می‌ماند.

برای شروع JavaScript به چه چیزهایی نیاز دارید؟

مرورگر

همان مرورگری که هر روز استفاده می‌کنید، ابزارهای توسعه خوبی برای اجرای JavaScript، دیدن Console و پیدا کردن خطاها در اختیارتان می‌گذارد.

ویرایشگر کد

یک Code Editor ساده و مناسب کافی است تا فایل‌ها را مرتب نگه دارید و راحت‌تر کد بنویسید. برای شروع واقعاً نیازی به ابزارهای عجیب و سنگین ندارید.

زمان برای تمرین

از همه مهم‌تر، زمانی است که برای تمرین می‌گذارید. برنامه‌نویسی دقیقاً با نوشتن، خراب کردن، پیدا کردن خطا و دوباره امتحان کردن تبدیل به مهارت می‌شود.

آموزش حضوری در کاشان

آموزش JavaScript و فرانت‌اند در کاشان

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

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

مشاهده دوره فرانت‌اند وارناپاد

سوالات متداول درباره JavaScript

آیا برای یادگیری JavaScript باید HTML و CSS بلد باشیم؟

بهتر است قبل از شروع JavaScript، HTML را در حد ساختار صفحه و CSS را در حد استایل‌های پایه بشناسید. لازم نیست حرفه‌ای باشید، اما این آشنایی باعث می‌شود تمرین‌های JavaScript را راحت‌تر بفهمید.

آیا JavaScript فقط برای Frontend است؟

خیر. JavaScript فقط به مرورگر محدود نیست و در سمت سرور و محیط‌های دیگر هم استفاده می‌شود؛ با این حال در مسیر فرانت‌اند یکی از زبان‌های اصلی و پایه‌ای است.

چه زمانی سراغ React برویم؟

وقتی با مفاهیم اصلی JavaScript، Array، Object، Function، DOM و بخش‌های مهم JavaScript مدرن راحت شدید، زمان مناسب‌تری برای ورود به React است. در این حالت به جای حفظ کردن الگوها، منطق پشت کد را هم بهتر می‌فهمید.

JavaScript چقدر زمان می‌برد؟

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

برای یادگیری JavaScript باید ریاضیات قوی داشته باشیم؟

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

جمع‌بندی

یکی از جذابیت‌های JavaScript این است که نتیجه کارتان را خیلی زود می‌بینید. امروز با یک کلیک ساده متن را تغییر می‌دهید و کمی بعد می‌توانید بخش‌هایی بسازید که با کاربر و داده‌های واقعی تعامل دارند.

در شروع تعداد دستورهایی که حفظ کرده‌اید معیار خوبی نیست. مهم‌تر این است که وقتی کد کار نکرد، بتوانید مسئله را کوچک کنید، سرنخ پیدا کنید و دوباره امتحان کنید.

اگر برای JavaScript پایه وقت بگذارید، بعداً React، Next.js و پروژه‌های جدی‌تر فرانت‌اند کمتر شبیه مجموعه‌ای از دستورهای حفظی به نظر می‌رسند. آن موقع می‌دانید پشت بیشتر این ابزارها چه منطقی در حال کار است.