۱۴ مفهوم بنیادی جاوا اسکریپت – به زبان ساده


در این مقاله تلاش خواهیم کرد نقشه جامعی از مبانی بنیادی جاوا اسکریپت ارائه کنیم. این نقشه با در نظر گرفتن افراد مبتدی نوشته شده است و اساساً مفاهیم بنیادی اصلی را بدون نیاز به صرف زمان زیاد برای مطالعه تکتک مفاهیم در اختیار شما قرار میدهد. با ما همراه باشید تا با 14 مفهوم بنیادی جاوا اسکریپت آشنا شوید. هدف این مقاله آن است که تصویری کلی از همه مفاهیم این زبان ارائه کند تا بتوانید یادگیری آن را سریعتر آغاز کنید. با این حال این به آن معنی نیست که این یک مقاله جامع است. در این مقاله از توضیحات کوتاه استفاده شده است که امید میرود مورد توجه شما قرار گیرد.

ساختار کد
جاوا اسکریپت در سادهترین مفهوم خود از یک سری گزارهها و نقطهویرگول تشکیل یافته است. گزاره شبیه به جمله است، اما ماهیت آن کد است.
برای نمونه عبارت زیر یک گزاره است:
نقطهویرگولها اجباری نیستند و در مواردی که یک شکستگی خط بین خطوط اتفاق میافتد درج میشوند. در واقع معادل نقطه برای جملات هستند. اما گاهی اوقات شکستگی خطوط ما را مطمئن نمیسازند که گزارهها نیز شکسته شدهاند. عملگر + میتواند به عنوان یک اتصالدهنده بین خطوط استفاده شود. به مثال زیر توجه کنید:
use strict
برای مدتهای مدیدی، جاوا اسکریپت در مورد سازگاری با نسخههای پیشین دغدغهای نداشت، زیرا انتشار و قابلیتهای جدید همپوشانی نداشت، اما بالاخره این همپوشانی ایجاد شد. در سال 2009، استاندارد ECMAScript 5 به اختصار ES5 انتشار یافت و قابلیتهای جدید برخی از قابلیتهای قبلی را اصلاح کردند. به صورت پیشفرض این اصلاحها تا زمانی که از عبارت use strict استفاده نکنید اعمال نمیشوند. این عبارت use strict باید در ابتدای کد جاوا اسکریپت قرار گیرد و جز در این صورت اعمال نمیشود. امروزه همواره از use strict استفاده میکنیم، زیرا نمیخواهیم از پیادهسازیهای قدیمی جاوا اسکریپت استفاده کنیم.
متغیرها
متغیرهایی مکانهایی برای ذخیره اطلاعات هستند. آنها را میتوان به عنوان بخشهایی از حافظه تصور کرد که دادهها را در خود جای میدهند. با استفاده از کلیدواژه let میتوان یک متغیر را اعلان کرده و نامی برای آن تعیین کرد. بدین ترتیب متغیر مقداردهی میشود و میتوانید با عملگر = مقداری به آن بدهید. اگر مقداری به متغیر ندهید، به صورت پیشفرض شامل مقدار undefined خواهد بود که معنی آن این است که مقداردهی شده، اما هنوز چیزی در آن جای نگرفته است. به طور خلاصه معنیاش این است که هنوز مقداری به متغیر داده نشده است.
توجه کنید که این وضعیت متفاوت از null است. مقدار null به طور معمول باید به صورت دستی انتساب یابد. استفاده از مقدار null به این معنی است که به این واقعیت واقفید که مکان حافظه خالی است و فراموش نکردهاید آن را پر کنید و یا این که در طی کار اتفاق نادرستی رخ داده است. در اسکریپتهای قدیمی برای اعلان متغیر از var استفاده میشد که تأثیر متفاوتی بر خروجی نهایی دارد.
انواع داده
جاوا اسکریپت در قیاس با زبانهای برنامهنویسی دیگر، انواع دادههای گستردهای ندارد. در ادامه فهرست خلاصهای از این انواع ارائه شده است.
number
برای انواع عددی از گیومه استفاده نمیکنیم. امکان تعریف اعداد صحیح و اعشاری وجود دارد و عملگرهای ابتدای روی این اعداد کار میکنند. یک نوع عدد خاص به صورت infinity نیز وجود دارد. برای تولید آن کافی است یک را بر صفر تقسیم کنید (1/0). این عدد در واقع بزرگترین عدد است و بینهایت نامیده میشود.
اگر مقداری به صورت NaN دریافت کردید، معنیاش این است که یک خطای محاسباتی دارید. همچنین به این معنی است که تلاش کردهاید عملیات ریاضیاتی را روی چیزی اجرا کنید که معنی ندارد، مثلاً یک رشته متنی را بر یک عدد تقسیم کنید.
BigInt
بزرگترین عددی که در جاوا اسکریپت میتوانیم داشته باشیم، عددی با طول 16 رقم است. در اغلب موارد اپلیکیشنهای ما از اعداد با طول کمتر از 16 رقم استفاده میکنند. با این حال گاه ممکن است در کاربردهایی مانند رمزنگاری به اعداد بسیار بزرگ نیاز داشته باشیم. یک مقدار BigInt با افزودن n به انتهای عدد ساخته میشود:
String
String یا رشته یک متغیر متنی است که بر اساس قرارگیری درون گیومه مشخص میشود. 3 نوع گیومه به شرح زیر وجود دارند:
- گیومه تکی (')
- گیومه جفتی (")
- بکتیک (`)
گیومههای تکی و جفتی در جاوا اسکریپت تفاوتی ندارند. بکتیک بیشتر برای بسط کارکرد یک رشته جهت جاسازی متغیرها با استفاده از ساختار {} $ استفاده میشوند. به مثال زیر توجه کنید:
اگر در مثال فوق از گیومه استفاده کنیم، صرفاً به یک رشته معمولی تبدیل میشود.
Boolean
متغیرهای بولی دو مقدار True یا False را نگهداری میکنند. به طور معمول برای نمایش نتیجه نوعی مقایسه مورد استفاده قرار میگیرد.
Null
Null به معنی تهی یا هیچ است. شبیه این مقدار را در زبانهای دیگر برنامهنویسی ندیدهایم.
Undefined
Undefined به معنی این است که یک مقدار هنوز انتساب نیافته است.
Object
هر نوع داده دیگری به جز این انواع داده «ابتدایی» (Primitive) نامیده میشود، زیرا ساده هستند. اما اشیا یا objects امکان داشتن بیش از یک آیتم را در اختیار ما قرار میدهند.
تبدیل نوع
برخی اوقات لازم است که بین انواع مختلف به هر دلیلی سوئیچ کنیم. روش کار به صورت زیر است:
لطفاً توجه داشته باشید که تبدیل کردن متن تصادفی به اعداد میسر نیست و به طور کلی انجام چنین کاری هیچ معنی هم ندارد، چون در نهایت مقدار NaN به دست میآید. ()Boolean هر مقدار را به خروجی true یا false تبدیل میکند. هر چیز خالی مانند 0، null، undefined و NaN مقدار False بازگشت میدهد و بقیه موارد خروجی True دارند.
عملگرها
این عملگرها خاص جاوا اسکریپت نیستند و به طور کلی شبیه به بقیه زبانهای برنامهنویسی عمل میکنند. فهرست آنها به شرح زیر است:
AND (&) OR (|) XOR (^) NOT (~) LEFT SHIFT (<<) RIGHT SHIFT (>>) ZERO-FILL RIGHT SHIFT (>>>)
زمانی که از عملگرها استفاده میکنیم، میتوانیم هر کاری را که دوست داریم روی مقادیر اجرا کنیم. به مثال زیر توجه کنید:
مقایسهها
اینها شامل عملگرهای مقایسه ریاضیاتی هستند:
- بزرگتر یا کمتر از: a > b, a < b.
- بزرگتر یا مساوی و کمتر یا مساوی: a >= b, a <= b.
- تساوی: a == b (توجه کنید که علامت مساوی منفرد به معنی انتساب است)
- نامساوی: a!=b
alert, prompt, confirm
اینها مواردی هستند که به صورت یک پنجره مجزا روی صفحه ظاهر میشوند:
Prompt-ها دو آرگومان میگیرند که یکی سؤال و دیگری پاسخ است:
Confirm به منظور گرفتن تأیید کاربر استفاده میشود:
گزارههای شرطی
گزاره مشهور if ستون فقرات یک پروژه ابتدایی جاوا اسکریپت را تشکیل میدهد. ایده کار ساده است. «اگر» چیزی شرط مورد نظر را داشته باشد، کد اجرا میشود. به مثال زیر توجه کنید:
این گزاره شرطی همواره یک مقدار بولی به عنوان نتیجه بازگشت میدهد. بنابراین میتوانید محاسبات ریاضی، بررسی و هر چیزی دیگری را تا زمانی که یک مقدار بولی است داشته باشید.
علاوه بر گزاره if، گزارههای else if و esle نیز وجود دارند. Else if یک گزاره if را بسط میدهد. Esle صرفاً در مواردی که همه گزارههای دیگر برقرار نباشند، اجرا میشود. در مثال زیر این حالت بررسی شده است:
حلقهها
فرض کنید میخواهید یک گزاره if را به صورت مکرر اجرا کنید. به جای این که آن را چند بار بنویسید یا بخواهید آن را چند بار فراخوانی کنید، میتوانید این گزاره if را درون یک حلقه قرار دهید. حلقه یک شرط دارد که وقتی شرط حلقه مقدار false پیدا کند، متوقف میشود:
حلقههای do…while ساختار معکوسی دارند و شرط حلقه را پس از اجرای کد بررسی میکنند، چون گاهی اوقات لازم است که اول کد را اجرا کنیم و سپس شرط را بررسی نماییم. به مثال زیر توجه کنید:
گزارههای Switch
گزارههای switch اساساً امکان نوشتن گزینهها را فراهم میسازند. به مثال زیر توجه کنید:
همچنین میتوان موارد مختلف را طوری گروهبندی کرد که نیازی به نوشتن خروجی یکسان بیش از یک بار وجود نداشته باشد.
تابعها
تابعها، بلوکهای سازنده اپلیکیشنها، کتابخانهها، فریمورکها و هر برنامه جاوا اسکریپت هستند. برخی تابعهای داخلی از قبیل ()alert و ()prompt در زبان جاوا اسکریپت وجود دارند که قبلاً بررسی کردیم. علاوه بر اینها شما میتوانید تابعهایی برای خودتان بنویسید:
سپس به صورت زیر میتوانید تابعتان را فراخوانی کنید:
عبارتهای تابعی
برای نوشتن یک تابع بیش از یک روش وجود دارد. برخی روشهای آن در مثال زیر ارائه شده است:
تابعهای Arrow
یک تابع arrow صرفاً ساختاری متفاوت برای نوشتن کوتاهتر تابعها است:
تابعهای arrow به طور معمول در یک خط قرار میگیرند، اما با استفاده از آکولادها امکان نوشتن تابعهای چندخطی نیز وجود دارد. به مثال زیر توجه کنید:
زمانی که از آکولاد {} در تابعهای arrow استفاده میکنیم، باید مطمئن شویم که از return نیز برای خروج از آن استفاده میکنیم. به این ترتیب به پایان این مقاله میرسیم.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای JavaScript (جاوا اسکریپت)
- مجموعه آموزشهای برنامهنویسی
- آموزش JavaScript ES6 (جاوا اسکریپت)
- آموزش جاوا اسکریپت — مجموعه مقالات جامع وبلاگ فرادرس
- کار با JSON در جاوا اسکریپت — راهنمای کاربردی
- حلقه for در جاوا اسکریپت — از صفر تا صد + مثال و کد
==