جاوا اسکریپت چیست؟
جاوا اسکریپت یه زبان اسکریپت نویسی یا برنامه نویسیه که بهت اجازه میده ویژگی های پیچیده ای رو روی صفحات وب پیاده سازی کنی. هر وقت یه صفحه وب بیشتر از یه نمایش ساده اطلاعات ثابت برات انجام میده - مثل نمایش محتوای به روز شده، نقشه های تعاملی، انیمیشن های دو بعدی و سه بعدی، اسکرول ویدیوها و کلی قابلیت دیگه - میتونی مطمئن باشی که جاوا اسکریپت اون پشت نقش داره. جاوا اسکریپت سومین لایه از مجموعه تکنولوژی های استاندارد وب محسوب میشه. دو لایه دیگه ابتدایی HTML و CSS محسوب می شن.HTML ،CSS و JavaScript چه کاری انجام میدن؟
HTML زبانیه که برای ساختاردهی و معنا دادن به محتوای وب استفاده میکنیم، مثلا تعیین پاراگراف ها، تیترها، جدول های داده یا قرار دادن تصاویر و ویدیوها داخل صفحه. CSS مجموعه ای از قوانین استایل دهیه که برای زیباتر کردن محتوای HTML به کار میره، مثل تعیین رنگ پس زمینه، فونت ها و تنظیم چیدمان محتوا در چندین ستون.JavaScript یه زبان اسکریپت نویسیه که بهت اجازه میده محتوای سایت رو به صورت داینامیک به روزرسانی کنی، مولتی مدیا رو کنترل کنی، تصاویر رو انیمیشن بدی و کلی کارای دیگه انجام بدی. (خب، شاید نه همه چیز، ولی با چند خط کد جاوا اسکریپت میشه کارای شگفت انگیزی کرد!)این سه لایه به خوبی روی هم قرار میگیرن و همدیگه رو کامل میکنن. مثلا یه دکمه رو در نظر بگیر. میتونیم با HTML اون رو ایجاد کنیم تا ساختار و هدفش مشخص بشه.جاوا اسکریپت روی صفحه شما چه کار میکنه؟
بیاید یه مرور سریع داشته باشیم روی روندی که هنگام بارگذاری یه صفحه وب توی مرورگر اتفاق میفته. وقتی یه صفحه وب رو توی مرورگر باز میکنی، در واقع داری کدهای HTML، CSS و JavaScript رو داخل یه محیط اجرایی (همون تب مرورگر) اجرا میکنی. این مثل یه کارخونه عمل میکنه که مواد اولیه (کدها) رو میگیره و یه محصول (صفحه وب) رو تحویل میده.وقتی صفحه بارگذاری میشه، کدهای HTML، CSS و JavaScript کنار هم میان تا محتوای مورد نظر رو داخل تب مرورگر نمایش بدن.یکی از رایج ترین کاربردهای جاوا اسکریپت، تغییر داینامیک HTML و CSS برای بروزرسانی رابط کاربریه که این کار از طریق API مدل شیءگرای سند (DOM) انجام میشه.امنیت مرورگر
هر تب مرورگر یه محیط جداگانه برای اجرای کدها داره (به این محیط ها از نظر فنی "محیط های اجرایی" گفته میشه). این یعنی که توی بیشتر موارد، کدهای هر تب به طور کاملاً مستقل اجرا میشن و کدهای یه تب نمیتونن مستقیماً روی کدهای یه تب دیگه یا یه وبسایت دیگه تأثیر بذارن.این یه اقدام امنیتی مهمه اگه اینطور نبود، هکرها میتونستن کدهایی بنویسن که اطلاعات سایت های دیگه رو بدزدن یا کارهای مخرب دیگه ای انجام بدن.کد تفسیر شده در مقابل کد کامپایل شده
شاید اصطلاحات تفسیر شده (interpreted) و کامپایل شده (compiled) رو توی برنامه نویسی شنیده باشی. توی زبان های تفسیر شده، کد از بالا به پایین اجرا میشه و نتیجه اجرای اون بلافاصله برگردونده میشه. نیازی نیست که قبل از اجرا، کد رو به یه فرم دیگه تبدیل کنی. مرورگر همون متنی که برنامه نویس نوشته رو مستقیماً دریافت و پردازش میکنه.اما توی زبان های کامپایل شده، کد قبل از اجرا، به یه فرم دیگه تبدیل (کامپایل) میشه. مثلا C و C++ قبل از اجرا، به کد ماشین تبدیل میشن و بعد توسط کامپیوتر اجرا میشن. برنامه از یه فرمت باینری اجرا میشه که از روی کد اصلی تولید شده.جاوا اسکریپت یه زبان برنامه نویسی سبک و تفسیر شده محسوب میشه. مرورگر، کد جاوا اسکریپت رو توی همون فرم متنی اصلی دریافت میکنه و اجراش میکنه. از نظر فنی، بیشتر مفسرهای مدرن جاوا اسکریپت از تکنیکی به نام "کامپایل همزمان (Just-in-time compiling)" استفاده میکنن تا سرعت اجرا رو بالا ببرن. در این روش، کد جاوا اسکریپت حین اجرا به یه فرمت باینری سریع تر کامپایل میشه تا با بیشترین سرعت ممکن اجرا بشه.اما با این حال، جاوا اسکریپت هنوز یه زبان تفسیر شده محسوب میشه، چون فرایند کامپایل در زمان اجرا انجام میشه، نه قبل از اون.کد سمت سرور در مقابل کد سمت کاربر
احتمالاً اصطلاحات کد سمت سرور (server-side) و کد سمت کاربر (client-side) رو، مخصوصاً توی توسعه وب، شنیدی.کد سمت کاربر روی کامپیوتر کاربر اجرا میشه وقتی یه صفحه وب رو باز میکنی، کدهای سمت کاربر اون صفحه دانلود میشن، بعد مرورگر اون ها رو اجرا و نمایش میده. توی این بخش، ما به طور خاص داریم در مورد جاوا اسکریپت سمت کاربر صحبت میکنیم.اما کد سمت سرور روی سرور اجرا میشه، بعد نتیجه اش دانلود شده و توی مرورگر نمایش داده میشه. بعضی از زبان های معروف سمت سرور شامل PHP، Python، Ruby، C# و حتی جاوا اسکریپت هستن!بله، جاوا اسکریپت میتونه به عنوان یه زبان سمت سرور هم استفاده بشه. مثلا توی محیط محبوب Node.js، جاوا اسکریپت میتونه برای پردازش درخواست های سرور و ایجاد اپلیکیشن های وب استفاده بشه.