فصل ۱: جاوا اسکریپت چیست؟ معرفی مقادیر، انواع داده و عملگرها

09 اردیبهشت 1396
JavaScript-main-introduction1

با سلام. در این دوره‌ی آموزشی قصد داریم به صورت کاملا مفصل به یادگیری جاوا اسکریپت (Javascript) بپردازیم. این زبان جزو اصلی‌ترین زبان‌های برنامه‌نویسی می‌باشد که هر برنامه‌نویس باید آن را به صورت کامل فرا گیرد. این مجموعه رایگان شامل ۱۹ فصل می‌باشد که به صورت مرحله به مرحله و گام به گام از ۰ تا ۱۰۰ زبان جاوا اسکریپت را شامل می‌شود. اگر هیچ تخصصی در برنامه نویسی ندارید اصلا نگران نباشید. با مطالعه‌ی فصل به فصل این مجموعه می‌توانید به این زبان تسلط کامل پیدا کنید. با ما همراه باشید.

مقدمه

زبان جاوا اسکریپت یا Javascript در سال ۱۹۹۵ به عنوان راهی برای اضافه کردن برنامه‌ها به صفحات وب در مرورگر Netscape معرفی شد. و طی مدت زمان کمی با اکثر مرورگرهای گرافیکی قدرتمند تطبیق پیدا کرد. در نهایت با ورود جاوا اسکریپت به عرصه وب دیگر نیازی به بارگذاری مجدد صفحات نبود و عملیات پردازش شده و خروجی را به کاربر نمایش میداد. بنابراین طولی نکشید که زبان برنامه نویسی جاوا اسکریپت در اکثر فرم‌ها و صفحات مورد استفاده قرار گرفت.

همچنین توجه به این نکته بسیار ضروری است که زبان برنامه نویسی جاوا اسکریپت (Javascript) هیچ ارتباطی به زبان جاوا (Java) ندارد. اگر تشابه اسمی وجود دارد تنها برای افزایش مخاطبان و نوعی بازاریابی غیرمستقیم است. هنگامیکه زبان جاوا اسکریپت روی کار آمد، زبان برنامه نویسی جاوا (Java) از قدرت بسیاری و محبوبیت بالایی بهره‌مند بود.

پس از فراگیر شدن زبان جاوا اسکریپت باید مستندات استاندارد برای استفاده بهتر این زبان نوشته می‌شد تا دستیابی به آن راحت تر باشد بنابراین برای جاوا اسکریپت یک استاندارد به نام ECMAScript با تلفظ اکما اسکریپت روانه بازار شد. بنابراین گاهی از اکما اسکریپت و جاوا اسکریپت به جای یکدیگر استفاده می‌شود که دو اسم متفاوت برای یک زبان است.

همواره ورژن‌های مختلفی از زبان برنامه‌نویسی جاوا اسکریپت ارائه شده است که اوج تحولات آن از سال ۲۰۰۰ تا ۲۰۱۰ می‌باشد. ابتدا اکمااسکریپت ورژن ۳ طراحی و روانه بازار شد. سپس توابع و افزونه‌هایی به این زبان اضافه و ورژن ۴ اکما اسکریپت تا سال ۲۰۰۸ مورد استفاده قرار گرفت. در نهایت در سال ۲۰۰۹ ورژن ۵ اکما اسکریپت تولید شد. هم اکنون بیش از ۹۹٪ مرورگرها از این ورژن پشتیبانی می‌کنند که در این فصل تمرکز ما روی همین ورژن است. هر چند ورژن ۶ اکما اسکریپت در حال حاضر موجود است اما برخی از مرورگرها فعلا نرم افزار خود را آپدیت نکرده‌اند و برای احتیاط همواره از اکما اسکریپت ۵ استفاده می‌کنیم.

در نظر داشته باشید که تنها مرورگرهای وب از جاوا اسکریپت استفاده نمی‌کنند بلکه برخی از پایگاه داده‌ها مثل MongoDB و CouchDB همواره از جاوا اسکریپت بهره می‌برند. برخی از پلتفرم‌های قدرتمند دسکتاپ و سرورها (که در رأس سرور Node.js قرار گرفته است) محیطی قدرتمند را برای کار با زبان برنامه‌نویسی جاوا اسکریپت (JavaScript) فراهم می‌کنند.

‎مقادیر (Values)

تمام مقادیر از بیت‌ها ساخته‌شده‌اند و برای کار با بیت‌ها در دنیای کامپیوتر باید آنها را به قطعات کوچکتر تبدیل کرده و مورد استفاده قرار دهیم. در محیط جاوا اسکریپت به این تکه‌ها مقادیر یا Values گفته می‌شود. هر مقدار یک نوع مشخص دارد که متناسب با آن وظیفه‌ای را انجام می‌دهد. همواره ۶ نوع مقدار مختلف در جاوا اسکریپت وجود دارد: اعداد، رشته‌ها، باینری، اشیاء، توابع و داده‌های تعریف نشده.

اعداد (Numbers)

مقادیر عددی به مقادیری گفته می‌شود که شامل اعداد هستند مثل عدد ۱۳. که همواره محاسبات روی این اعداد صورت می‌گیرد بنابراین در زبان جاوا اسکریپت همانند سایر زبان‌های برنامه نویسی عملگرهای محاسباتی جمع، تفریق، تقسیم و ضرب وجود دارد که به علائم +، - ، / و *‌ مشخص می‌شود.

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

۱) مقادیر Infinity‌ و infinity- است که مثبت منفی بی نهایت را نمایش می‌دهد. درنظر داشته باشید که Infinity-1 همواره برابر infinity‌ است و ... .

۲) مقادیر اعداد NaN  که مخفف عبارت Not a Number‌ است. این مقداری زمانی بوجود می‌آید که مثلا تقسیم عدد ۰ بر ۰ صورت بگیرد. یا مثلا دستور Infinity-Infinity.

رشته‌ها (Strings)

نوع داده‌ای که معمولا بسیار پرکابرد است، نوع داده‌ی رشته‌ای می‌باشد. رشته‌ها برای نمایش متن‌ها مورد استفاده قرار می‌گیرند. آنها همواره درون یک کوتیشن ' ' و یا دو کوتیشن " " قرار می‌گیرند. به مثال زیر توجه کنید:

"Patch my boat with chewing gum"
'Monkeys wave goodbye'

حال این سوال برای شما پیش می‌آید که تفاوت بین دو عبارت بالا در چیست؟ هر دو عبارت بالا یک مفهوم را نمایش می‌دهند و هیچ فرقی با یکدیگر ندارند، تنها زمانی از دو کوتیشن استفاده می‌شود که کاراکترهای خاص مثل \ یا ' (آپسروف) در متن وجود داشته باشد. به مثال زیر توجه کنید:

"This is the first line\nAnd this is the second"

که خروجی این مثال به صورت زیر است:

This is the first line
And this is the second

همچنین می‌توان از عملگرهای ریاضی برای اتصال رشته‌ها استفاده کرد:

"con" + "cat" + "e" + "nate"

عملگرها

عملگرهای مقایسه‌ای دو مقدار را مقایسه کرده و محسابات را به خط بعدی انتقال می‌دهند. انواع عملگرهای مقایسه‌ای با خروجی بولین به صورت زیر هستند:

مفهوم                           عملگر
============================================
==                       مساوی بدون دو مقدار
!=                       عدم تساوی دو مقدار
<                        کوچکتر از
>                        بزرگتر از
<=                       کوچکتر مساوی
>=                       بزرگتر مساوی

این عملگر‌ها مقادیر Ture و False را باز می‌گردانند. به مثال‌های زیر توجه کنید:

>>> 42 == 42
True
>>> 42 == 99
False
>>> 2 != 3
True
>>> 2 != 2
False
>>> 'hello' == 'hello'
True
>>> 'hello' == 'Hello'
False
>>> 'dog' != 'cat'
True
>>> True == True
True
>>> True != False
True
>>> 42 == 42.0
True
>>> 42 == '42'
False #جون هیج عددی معال یک رشته نیست
>>> 42 < 100
True
>>> 42 > 100
False
>>> 42 < 42
False
>>> eggCount = 42
>>> eggCount <= 42
True
>>> myAge = 29
>>> myAge >= 10
True

یک سوال: تفاوت بین عملگرهای == و = چیست؟
پاسخ: عملگر == دو متغییر را از نظر مقدار بررسی می‌کند که آیا مقادیر آنها دقیقا یکسان است یا نه! درحالیکه عملگر = به عنوان یک انتساب بین مقدار و متغییر مورد استفاده قرار می‌گیرد.

سایر عملگرها

برخی از عملگرها به صورت نماد و سمبل ظاهر نمی‌شوند. بلکه به صورت یک کلمه یا حرف مورد استفاده قرار می‌گیرند. به عنوان مثال عملگر typeof به عنوان یک عملگر برای تعیین نوع داده مورد استفاده قرار می‌گیرد. به مثال‌های زیر توجه کنید:

console.log(typeof 4.5)
// . number
console.log(typeof "x")
// . string

توجه داشته باشید دستور console.log به عنوان یک تابع و متد برای نمایش مقادیر در مرورگر مورد استفاده قرار می‌گیرد که در آینده به توضیح آن می ‌پردازیم.

مقادیر باینری

این نوع مقدار به صورت عدد ظاهر نمی‌شود و مقادیر آن در حالت Yes و No یا On و Off مورد استفاده قرار می‌گیرد. حال در جاوا اسکریپت این مقادر دودویی فقط و فقط به صورت True و False استفاده می‌شوند.

 

عملگرهای بولین (Boolean)

سه عملگر بولین وجود دارد که به صورت and، or و not مورد استفاده قرار می‌گیرند.

عملگرهای بولین باینری

عملگرهای and و or همیشه برای دو مقدار بولین (یا عبارات) مورد استفاده قرار می‌گیرند.بدین صورت عمل می‌کنند که اگر دو مقدار True‌باشند پاسخ Ture را ارسال می‌کنند و درغیر این صورت مقدار False را در خروجی نمایش می‌دهند.

>>> True and True
True
>>> True and False
False

جدول این عملگر به صورت زیر می‌باشد:

مقدار محاسبه شده                 عبارت
======================================
True and True              True
True and False             False
False and True             False
False and False            False

از طرفی اگر عملگر or به‌کار گرفته شود آنگاه اگر هر دو مقدار یا تنها یکی از آنها True باشد جواب True را نمایش و در غیراین صورت جواب False را در خروجی چاپ می‌کند.

>>> False or True
True
>>> False or False
False

جدول این عملگر به صورت زیر می‌باشد:

مقدار محاسبه شده                 عبارت
======================================
True and True              True
True and False             True
False and True             True
False and False            False

و اما عملگر not اگر مورد استفاده قرار بگیرد در برابر مقدار True جواب False و در برابر مقدار False جواب True را در خروجی چاپ می‌کند. به جدول زیر توجه کنید:

مقدار محاسبه شده                 عبارت
======================================
not True                   False
not False                  True

همچنین در جریان هستید که می‌توان عملگرهای مقایسه‌ای و بولین با همدیگر ترکیب کرد و عبارتهای دیگری را ایجاد نمود. به مثال زیر توجه کنید:

>>> (4 < 5) and (5 < 6)
True
>>> (4 < 5) and (9 < 6)
False
>>> (1 == 2) or (2 == 2)
True

که اگر بخواهیم خط اول این مثال را تشریح کنیم بدین صورت عمل خواهیم کرد:

(4 < 5) and (5 < 6)
         |
   True and (5 < 6)
         |
   True and True
         |
        True

مقادیر تعریف نشده

مقادیری در زبان جاوا اسکریپت وجود دارند که به صورت تعریف نشده معرفی می‌شوند. نام این مقادیر null و undefiend‌ است. این مقادیر هیچگونه اطلاعاتی را درون خود ذخیره نمی‌کنند.

تفاوت بین دو مقدار null و undefined در مثال زیر شرح داده شده است:

 var TestVar;
 alert(TestVar); //shows undefined
 alert(typeof TestVar); //shows undefined

همانطور که در مثال بالا مشاهده می‌کنید اگر متغییری تعریف شود و مقداری به آن انتساب داده نشود. آن متغییر تعریف نشده یا undefiend‌ است.

var TestVar = null;
 alert(TestVar); //shows null
 alert(typeof TestVar); //shows object

در مثال فوق مشاهده می‌کنید که متغییری به نام TestVar وجود دارد اما مقدار null به آن انتساب داده شده است. که این مقدار در واقع تعریف نشده ولی خالی است.


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

فصل ۱: جاوا اسکریپت (JavaScript) چیست؟

فصل ۲

نویسنده شوید
دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.