جاوا اسکریپت یک زبان برنامهنویسی بسیار محبوب و پرکاربرد برای توسعه وب است. این زبان دارای مجموعهای از ویژگیهاست که آن را قدرتمند و انعطافپذیر میکند. برخی از این ویژگیها شامل داینامیک بودن، سبک بودن (lightweight)، تفسیری بودن، تابع محور بودن و شیءگرا بودن است.
لایبرریهای (Library) متنباز زیادی برای جاوا اسکریپت در دسترس هستند که استفاده از این زبان را هم در توسعه فرانتاند و هم بکاند آسان میکنند. در ادامه، برخی از مهمترین ویژگیهای جاوا اسکریپت را بررسی میکنیم.
Easy setup
برای شروع نوشتن کد جاوا اسکریپت به ویرایشگر خاصی نیاز نداریم. حتی هر کسی میتواند کد جاوا اسکریپت را در NotePad بنویسد. همچنین، جاوا اسکریپت میتواند بدون نیاز به تنظیم مفسر یا کامپایلر، مستقیماً در مرورگر اجرا شود.
میتوانید از تگ <script> برای اضافهکردن جاوا اسکریپت در فایل HTML استفاده کنید. بااینحال، امکان افزودن جاوا اسکریپت از طریق فایل خارجی با پسوند .js نیز وجود دارد.
Browser Support
تمام مرورگرها از جاوا اسکریپت پشتیبانی میکنند، زیرا همه مرورگرهای مدرن دارای محیط اجرای داخلی جاوا اسکریپت هستند.
همچنین میتوانید با استفاده از آبجکت (Object) window بررسی کنید که آیا مرورگر از جاوا اسکریپت یا یک فیچر خاص آن پشتیبانی میکند یا خیر.
Dom Manipulation
جاوا اسکریپت به توسعهدهندگان اجازه میدهد المانهای صفحه وب را دستکاری کنند. همچنین میتوانید مرورگر را کنترل کنید.
این زبان متدهای (Method) مختلفی برای دسترسی به المانهای DOM با استفاده از ویژگیهای متفاوت ارائه میدهد و امکان شخصیسازی المانهای HTML را فراهم میکند.
Event Handling
جاوا اسکریپت به شما اجازه میدهد رویدادهایی را که برای تعامل با صفحه وب استفاده میشوند مدیریت کنید.
برای مثال، میتوانید با استفاده از جاوا اسکریپت کلیک ماوس روی یک المان خاص HTML را تشخیص داده و با آن تعامل داشته باشید.
رویدادهای دیگری نیز وجود دارند، مانند تشخیص رفتار اسکرول صفحه وب و موارد مشابه. در فصل رویدادهای جاوا اسکریپت، تمام این رویدادها بررسی خواهند شد.(بخشهای بعدی در ادامه اضافه خواهند شد)
Dynamic Typing
جاوا اسکریپت نوع متغیرها (Variable) را در زمان اجرا تعیین میکند. بنابراین هنگام نوشتن کد نیازی نیست نگران نوع داده متغیرها باشیم و این موضوع انعطافپذیری بیشتری در نوشتن کد فراهم میکند.
همچنین میتوانید مقادیر با انواع داده مختلف را به یک متغیر اختصاص دهید. برای مثال، اگر مقدار عددی را در یک متغیر ذخیره کرده باشید، میتوانید بعداً مقدار آن را به یک رشته (String) تغییر دهید.
Functional Programming
جاوا اسکریپت از برنامهنویسی تابعی پشتیبانی میکند. در جاوا اسکریپت میتوانید فانکشنهای (Function) درجهیک، فانکشنهای خالص، Closure ها، فانکشنهای مرتبهبالا، Arrow Function ها، Function Expression ها و موارد دیگر را تعریف کنید.
در این زبان، فانکشنها بهعنوان بلوکهای سازنده اصلی برای حل مسئله استفاده میشوند.
Cross-platform Support
تمام سیستمعاملها و مرورگرها از جاوا اسکریپت پشتیبانی میکنند. به همین دلیل، این زبان بهطور گسترده برای توسعه وبسایتها، اپلیکیشنهای موبایل، بازیها، اپلیکیشنهای دسکتاپ و موارد دیگر استفاده میشود.
Object-oriented Programming
جاوا اسکریپت دارای کلاسها (Class) است و میتوان تمام مفاهیم برنامهنویسی شیءگرا را با استفاده از قابلیتهای آن پیادهسازی کرد.
این زبان از مفاهیمی مانند وراثت (Inheritance)، انتزاع (Abstraction)، چندریختی (Polymorphism) و کپسولهسازی (Encapsulation) نیز پشتیبانی میکند.
Built-in Objects
جاوا اسکریپت شامل آبجکتهای داخلی مانند Math و Date است. میتوان از آبجکت Math برای انجام عملیات ریاضی و از آبجکت Date برای مدیریت تاریخ بهسادگی استفاده کرد.
علاوه بر این، امکان تغییر و توسعه عملکرد آبجکتهای داخلی نیز وجود دارد.
Object Prototypes
در جاوا اسکریپت، همهچیز یک آبجکت است. برای مثال، Array، Function، Number، String، Boolean، Set، Map و غیره همگی آبجکت هستند.
هر آبجکت دارای یک ویژگی پنهان به نام prototype است. میتوانید از prototype برای پیادهسازی وراثت یا گسترش قابلیتهای یک کلاس یا آبجکت با استفاده از قابلیتهای آبجکتهای دیگر استفاده کنید.
Global Object
جاوا اسکریپت دارای آبجکت سراسری برای دسترسی به متغیرهایی است که در همهجا در دسترس هستند.
برای دسترسی به متغیرهای سراسری در مرورگر میتوانید از آبجکت window استفاده کنید و در Node.js میتوانید از کلیدواژه global برای دسترسی به متغیرهای سراسری استفاده کنید.
اخیراً کلیدواژه globalThis معرفی شده است که برای دسترسی به متغیرهای سراسری استفاده میشود و توسط بیشتر محیطهای اجرا (Runtime) پشتیبانی میشود.
Built-in Methods
جاوا اسکریپت برای هر آبجکت متدهای داخلی (Built-in Methods) دارد. توسعهدهندگان میتوانند از این متدها برای نوشتن کدهای کوتاهتر و بهینهتر استفاده کنند.
برای مثال، آبجکت Array دارای متد filter() برای فیلترکردن عناصر آرایه و متد sort() برای مرتبسازی آرایه است. آبجکت String نیز دارای متد replace() برای جایگزینی متن در رشته و متد trim() برای حذف فاصلههای اضافی از ابتدا و انتهای رشته است.
Modular Programming
جاوا اسکریپت به شما اجازه میدهد کد را در ماژولهای مختلف بنویسید و آنها را به ماژول اصلی متصل کنید. به این ترتیب، توسعهدهندگان میتوانند کدهای قابل نگهداریتری بنویسند.
با نوشتن کد در ماژولهای جداگانه، میتوان پیچیدگی کد را کاهش داد و هر ماژول را در صورت نیاز مجدداً استفاده کرد.
JSON
JSON مخفف JavaScript Object Notation است. این یک فرمت داده پرکاربرد برای تبادل داده بین دو شبکه، مانند سرور و کلاینت، محسوب میشود.
جاوا اسکریپت از فرمت JSON برای ذخیرهسازی دادهها نیز پشتیبانی میکند.
Asynchronous Programming
جاوا اسکریپت یک زبان برنامهنویسی تکریسمانی (Single thread) است. برای اجرای سریعتر کد، میتوانید از برنامهنویسی ناهمگام (Async) استفاده کنید.
در جاوا اسکریپت میتوانید از Promise ها برای نوشتن کد ناهمگام استفاده کنید که امکان مدیریت چندین وظیفه را بهصورت همزمان فراهم میکند.
Event-driven Architecture
معماری رویدادمحور جاوا اسکریپت به توسعهدهندگان اجازه میدهد اپلیکیشنهای وب تعاملی و ریسپانسیو ایجاد کنند و تعداد زیادی کاربر را بهصورت همزمان مدیریت نمایند.
به دلیل ویژگیها و کاربردهای گسترده جاوا اسکریپت، بخش فرانتاند Facebook با جاوا اسکریپت ساخته شده است. Netflix با استفاده از فریمورک ReactJS توسعه داده شده و همچنین شرکتهایی مانند Amazon، PayPal، Airbnb، LinkedIn، Twitter و دیگران نیز از جاوا اسکریپت استفاده میکنند.
Server-side Support
محیط اجرای Node.js جاوا اسکریپت به طور گسترده برای ایجاد بکاند اپلیکیشنها استفاده میشود، زیرا جاوا اسکریپت قابلیت ساخت سرور را نیز دارد. این محیط امکان ایجاد یک بکاند مقیاسپذیر برای اپلیکیشنها را فراهم میکند.











