JavaScript Grammar: Learn to Speak Javascript
ما اغلب به کلمه «ویژگی» به عنوان چیزی که متعلق به محصولات و خدمات نرم افزاری است فکر میکنیم. به عنوان مثال برنامههای مدرنی مانند اینستاگرام و توییتر دارای ویژگی "Follow" هستند. بارگذاری یک عکس در حساب کاربری شما نیز یکی دیگر از ویژگی هاست! اما زبانهای کامپیوتری نیز دارای ویژگی هایی هستند. یک تابع یک ویژگی است. یک حلقه for یک ویژگی است. همچنین کلمه کلیدی class نیز از ویژگیهای زبان کامپیوتری است.
در جاوا اسکریپت برخی از این ویژگیها از زبانهای دیگر وام گرفته شده اند، در حالی که خیلی از آنها منحصر به طراحی جاوا اسکریپت هستند. امکاناتی مثل this، class و const ممکن است شبیه به پیاده سازی اصلی سی پلاس پلاسی آنها باشد، اما در بسیاری از موارد، آنها به روشی کاملاً منحصر به فرد برای جاوا اسکریپت استفاده میشوند. جاوا اسکریپت یک زبان در حال تکامل است. هنگامی که EcmaScript 6 در ژوئن 2015 به بازار آمد، این زبان یک انفجار کامبری از ویژگیهای جدیدی را تجربه کرد که اساساً چگونگی نوشتن کد JavaScript را تغییر داد.
امکانات جدیدی مثل …rest و …spread، توابع arrow، رشتههای template، تخریب اشیا در کد جاوا اسکریپت مدرن امری عادی هستند. اما فقط چند سال پیش، حتی توسعه دهندگان با تجربه جاوا اسکریپت با بیش از یک دهه تجربه در زمینه جاوا اسکریپت نیز نتوانستند چنین مفاهیمی را تصور کنند. برنامه نویسی تابعی ظاهراً با سرعت نور وارد جامعه جاوا اسکریپت شد و توابع مرتبه بالاتر (.map، .filter، .reduce) به متدهای Array گره خورده شدند که به نظر برای سالهای زیادی خفته باقی مانده بودند، محبوبیت زیادی پیدا کردند. اما جاوا اسکریپت یک زبان چند الگو واره ای است. برنامه نویسانی که با پیشینه برنامه نویسی شی گرا سنتی به سراغ جاوا اسکریپت میآیند پس از معرفی کلمه کلیدی class و یک تابع سازنده جداگانه که جایگزینی برای سازندگان کلاسیک object-function جاوا اسکریپت ارائه میدهد، احساس راحتی میکنند.
مشخصات ES6 باعث ایجاد نسل جدیدی از کد نویسان شد که احترام بیشتری به زبانی که زمانی برای نوشتن اسکریپتهای DOM بدوی مورد استفاده قرار میگرفت، ایجاد کردند. موتورهای جاوا اسکریپت که در مرورگرها اجرا میشوند(به عنوان مثال V8 مرورگر Chrome) بالغ شده اند و دیگر به جاوا اسکریپت به عنوان یک زبان اسکریپت نویسی ساده نگاه نمیشود. این یک عصر کاملاً جدید از توسعه جاوا اسکریپت است. امروزه، شما اغلب میتوانید به ویدئویی با عنوان ساخت ربات با جاوا اسکریپت در YouTube سر بزنید. حتی ساخت برنامههای دسکتاپ برای ویندوز 10 تقریباً به طور کامل با JavaScript امکان پذیر است.
چارچوبها و کتابخانههای JavaScript مانند React و Vue، بر روی بعضی از اصول کلاسیک جاوا اسکریپت انتزاعی ایجاد کرده اند و ساختن برنامههای ماژولار را سریعتر میکنند. اما این اغلب با هزینه ای صورت میگیرد که هرگز نیازی به درک JavaScript خام در سطح مبتدی و دستور زبان رایج آن نیست.
کتاب JavaScript Grammar، برای حل این مشکل با استفاده از موضوعات به دقت انتخاب شده که امیدوارم با یک تجربه یادگیری طبیعی مطابقت داشته باشد، نوشته شده است. محتوای این کتاب سعی خواهد کرد تا به ماهیت پویا مشخصات JavaScript وفادار بماند. نمودارهای بصری برای توصیف دقیق مفاهیم دشوار مانند Prototype، Event Loop و برنامه نویسی شی گرا طراحی شده اند. کتاب گرامر جاوا اسکریپت تمام ویژگیهای مهم JavaScript مدرن (ES6-ES10) را از ساده تا پیشرفته پوشش میدهد. هر ویژگی با مثالهای ساده توضیح داده میشود؛ بنابراین کتاب به راحتی قابل دنبال است. سرانجام امید است که این کتاب خواننده را ترغیب کند تا در آینده قدمهای بعدی را در جهت موضوعات پیشرفتهتر بردارد.