دوره مجازی جاوااسکریپت (جلسه 3): انواع مختلف داده ها و متغیرها در جاوااسکریپت



visibility  
mode_comment   ۴۹

در جلسه امروز به معرفی انواع داده های مختلف در زبان جاوااسکریپت می پردازیم و انواع متغیرها در جاوااسکریپت و نحوه کار با اونها رو آموزش می بینیم . این جلسه مهم هست و باید کار با متغیر ها، تعریف اونها و نحوه استفادشون رو خوب بلد باشید .

مطالب مطرح شده در این جلسه عبارتند از :

  • توضیح در مورد متغیر ها و داده های ورودی و خرجی
  • معرفی انواع داده های موجود در زبان جاوااسکریپت
  • نوع داده ای عددی
  • نوع داده ای رشته
  • نوع داده ای بولین
  • نوع داده ای آرایه
  • نوع داده ای اشیاء
  • توضیح در مورد روند توسعه زبان های برنامه نویسی
  • توضیح در مورد اشیاء و برنامه نویسی شی گرا
  • ذکر مثال هایی از اشیاء، متدها و ویژگی های پیش ساخته در زبان جاوااسکریپت
  • معرفی متغیر ها و وظیفه آنها در برنامه نویسی
  • نحوه تعریف متغیر و مقدار دهی به آن
  • نحوه تعین نوع متغیر در جاوااسکریپت به صورت خودکار
  • ذکر مثال هایی از انواع مختلف متغیر ها و چاپ مقادیر آن ها
  • معرفی دستور typeof برای تشخیص نوع متغیر
  • معرفی مقادیر undefined و null و NaN در جاوااسکریپت و مفهوم آن ها
  • نحوه تعریف چند متغیر با یک دستور var (در یک خط)
  • نحوه برخورد جاوااسکریپت با تعریف دوباره متغیر ها ؟؟؟
  • نحوه خواندن اطلاعات اعضای ارایه ها و اشیاء در جاوااسکریپت
  • تمرین : تشخیص مقادیر چند عبارت !
info توجه

این مطلب یک جلسه از آموزش javascript می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش javascript

comment دیدگاه کاربران
nader70 replyپاسخ

استاد دستتون درد نکنه عالی بود
در اخرین مثال که جمع دو عدد بود اگر متغیر s رو تعریف نکنیم بازم جواب میگیریم میشه توضیح بدید؟
مرسی از زحمات بی پایان شما

لقمان آوند

جوابش رو در جلسه بعد متوجه میشید
استفاده از var برای تعریف متغیر اختیاری هست. اگر با var تعریف نکنید در در اولین انتساب متغیر تعریف میشه و مقدار میگیره
اول جلسه آینده صحبت میکنیم در موردش

hassani replyپاسخ

خیلی خوبه که فایلهای تمرینی و توضیحی هر جلسه رو در اختیار ما میذارین.اینطوری ما دیگه نیازی به خلاصه نویسی توضیحات شما نداریم و در وقتمون صرفه جویی میشه.

لقمان آوند

ایشالله برای همه جلسات همین روند رو خواهیم داشت.

امین خلیلی replyپاسخ

اقای اوند صدا ضعیفه

لقمان آوند

سلام
صدا متعادله . الان تست کردم و کاملا واضع و بلند هست .
اسپیکرتون ضعیف نیست ؟ بقیه دوستان چنین چیزی نگفتن !

mehdi karimi replyپاسخ

سلام استاد
من از دستور print برای چاپ کردن نمیتونم استفاده کنم ، یعنی وقتی ازش استفاده میکنم و صفحه رو رفرش میکنم قسمت مربوط به پرینت صفحه مرورگر باز میشه ، پرینت خود کامپیوتر!!

لقمان آوند

اسم تابع print رو تغیر بده . مثلا بزارش myPrint و از این اسم تو برنامه هات استفاده کن تا به مشکلی بر نخوری ..

mehdi karimi

ممنونم حل شد

Khazra replyپاسخ

سلام استاد من هم مشکل استفاده از دستور print رو دارم، داخل فایل جلسه 3 تابعی به اسم print تعریف نکردین فقط از دستور print استفاده کردید که برای من دیالوگ باکس print ویندوز رو باز می کنه

لقمان آوند

در جلسات آینده نحوه رفع این مشکلرو توضیح میدیم . باید نام تابع print رو تغیر بدید که روش راحتش رو خواهیم گفت .

Khazra

مشکل حل شد ممنون. 🙂

Saman SoroushNia replyپاسخ

سلام استاد ، بی نهایت ممنون از توضحیات و بیان شیواتون باید بگم عالیه

فقط یه سئوال چرا شما به جای استفاده از document.write از تابع ساختگی print استفاده کردین ؟ آیا باعث نمیشه دوستانی مثل من که آماتور هستند بعدا برای استفاده از این دستورات دچار سردرگمی بشوند؟
چون همونطوری که خودتونم می دونین در صورت آدرس دهی نامناسب common.js فرمان پرینت رو برای صفحات می فرسته

لقمان آوند

ممنون از لطفتون
بعدا در این مورد توضیح میدیم و فکر نمیکنم سردرگمی بوجود بیاره. چون document.write یه متد هست از یه آبجکت که بهتره وقتی این دو مفهومو رسیدیم توضیحشون بدیم. اتفاقا برای ساده سازی کار در اوایل چنین تابعی رو استفاده می کنیم که فعلا سوالی برای دوستان پیش نیاد تا میرسیم به توضیحشون .
تنها مشکل اینجا این بود که اسم تابع پرینت رو از اول باید چیز دیگه میزاشتیم که در جلسه 7 تصحیحش کردیم .
ممنون از دیدگاهتون

Peyman Rezaalizadeh replyپاسخ

سلام استاد.
میشه منو در مدیریت فایل های swf راهنمایی کنید که چی لازمه برای مدیریت این قسمت در سایت؟
میخوام بازی ها رو در سایتم کنترل و مدیریت کنم؟ مثلا تخته نرد رو دونفره بازی کنن.
یه بار پرسیدم پاسخ دادید این موضوع تو سایت نیست…. اما راهنمایی میخوام. ممنون میشم

لقمان آوند

بنده چون خودم فلش کار نکردم نمی تونم درست راهنماییتون کنم . در این مورد باید جستجو کنید .

Peyman Rezaalizadeh replyپاسخ

بعد از پایان این دوره میشه یه بازی مثل تخته نرد کد نویسی کرد؟

لقمان آوند

اگر الگوریتمش رو کامل بلد باشید و خوب تمرین کنید بله میشه …

امین خلیلی replyپاسخ


سلام استاد متغیر name از نوع عدد هست ولی وقتی typeof را میگیریم نوع متغیر را رشته چاپ میکنه

لقمان آوند

خود کلمه name در جاوااسکریپت از پیش تعریف شده و اصلاحا رزرو شدست. نباید از اینجور کلمات استفاده کنید. اسم متغیرتون رو عوض کنید درست میشه. مثلا بزارید name1

امین خلیلی replyپاسخ


استاد شما فرمودید هر متغییر مقدار اولی که بهش میدیم نوع اون متغییر همون میشه ولی در اینجا به متغییر aمقدار رشته ای دادم و دوباره بهش مقدار عددی دادم و وقتی typeof چاپ کردم نوع متغییر را
number نشون داد در صورتی که طبق گفته شما باید string نشون بده

لقمان آوند

الان یادم نیست ولی اگر چنین چیزی در ویدیو گفتم اشتباه کردم …
تایپ متغیر های جاوااسکریپت داینامیک هست. یعنی به محض دریافت مقدار از نوع جدید، نوع متغیر هم تغیر میکنه .
ممنون از ذکر این نکته و دقت شما

امین خلیلی

استاد در تایم 1:24:38ویدیو بود لطفا چک کنید ویدیو را ببنید شاید من اشتباه متوجه شدم ممنون

لقمان آوند

ممنون از آدرس دهی
بله اشتباه از من بوده. اونجا چون نام متغیر name بوده و از قبل در جاوااسکریپت تعریف شده هست نوع متغیر عوض نمیشد. وگرنه در حالت عادی تو جاواسکریپت تغیر نوع متغیر به صورت پویا انجام میشه.
عذرخواهی می کنم و باز هم تشکر می کنم بابت ذکر این مورد .

امین خلیلی replyپاسخ


استاد میخایم یه مقداری را از کاربر بگیریم بعد شرطی مثل بالا بنویسیم که اگه مقدار number بود یه پیامی را چاپ کنه اگه نباشه یه متنی دیگه را چاپ کنه ولی خروجی دستور prompt در هر صورت به صورت رشته برمیگرداند اگه بخایم نوع واقعی مقدار که در دستور prompt توسط کاربر وارد میشه را توسط دستور prompt بگیریم باید چه کار کنیم

لقمان آوند

بله prompt خروجیش رشته هست.
باید با Number به عدد تبدیلش کنید . در جلسات آینده در موردش صحبت کردیم. فعلا کدتون رو می تونید اینطوری بنویسید :

BraveMan replyپاسخ

با عرض سلام
ببخشید جناب آوند شما در جلسه سوم آموزش جاوا اسکریپت در دقیقه 1:24:00 در رابطه با دستور typeof توضیح میدهید و می گویید که اگر یک متغیر در جاوا اسکریپت برای بار دوم توسط یک نوع دیگر مقدار دهی شود مثلا بار اول یک مقدار رشته درون متغیر بریزیم و بار دوم یک مقدار عددی را درون متغیر مورد نظر بریزیم
سپس با استفاده از دستور typeof نوع متغیر مورد نظر را درخواست کنیم . نوعی که به ما برگردانده می شود نوع مقدار اولیه ای است که به متغیر نسبت داده شده است و نوع متغیر فقط در بار اول مقداردهی تعیین می شود.
من این کار را در نرم افزار phpstorm و همچنین در سایت w3schools امتحان کردم و جوابی غیر از توضیحات شما را به بنده داد
بدین صورت که بعد از مقدار دهی برای بار دوم یا سوم نیز نوع متغیر تغییر می کند.
لطفا چک کنید و بازنشر نمایید
با تشکر فراوان از زحمات بی دریغ و بی شائبیتان
ومن الله التوفیق

لقمان آوند

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

Sahar Dida replyپاسخ

با سلام خدمت شما
استاد من هر کدی رو که تو فایل js ام میزنم خروجیش تو مرورگر همه رو کنار هم چاپ میکنه در صورتی که واسه شما زیر هم چاپ شده،ممنون میشم راهنماییم کنید

لقمان آوند

تگ
رو باید در انتهای رشته چاپ شده بزارید که در خط بعد چاپ بشه

امیرحسین اروجلو replyپاسخ

سلام
آموزش خیلی خوب و روان بود
من به توصیه شما گوش کردم و دارم نوت برداری میکنم از هر جلسه امیدوارم تا آخر به خوبی جلو برید و من هم بتونم مهارت لازم رو کسب کنم
ایام به کام
امیرحسین 😉

لقمان آوند

ایشالله که همواره راضی و موفق باشید

-nodex- replyپاسخ

یه سوال فنی ربط اشیا که تو این جلسه درموردش صحبت کردین با دادهها چی هست!!! منظورم اینه که تو ی داده ها ی دیگه مثل ارایه ها-نامبر هاو…. یه مقداری روو می تونیم دریافت کنیم یا اینکه یه مقدار رو تعریف کنیم و از اون تو برنامه نویسی استفاده کنیم اشیا چی؟!!! 😐

لقمان آوند

سلام
اشیاء هم خودشون یه جور داده هستند دیگه. می تونن داده ها و توابع دیگه رو درون خودشن داشته باشن. ایشالله جلسات بعدی رو ببینید بهتر متوجه میشید.

Pouriya Ariyafar replyپاسخ

استاد جاوااسکریپت چطوری میفهمه که این متغییر از نوع بولین هست ؟

شاید اصلا سه مقدار بگیره مثلا
Ture, false, none

استاد یک سوال دیگه
این دو تا فرقی با هم دارن؟

و

مورد دومی درست تر نیست؟
ممنون

لقمان آوند

سلام
خوب برای اولی مقادیر مختلف رو قرار بدید و چاپ کنید نوعش رو ببینید چی در خروجی می بینید. بعد می تونید تحلیل کنید!!!
فرق خاصی با هم ندارند . شما خواستی null رو چاپ کنی که هر دو اینکارو می کنن!

Atefeh RG replyپاسخ

سلام
چرا وقتی یک دستور print ساده رو می نویسم تا دستوارت جاوا اسکریپت خروجی موردنظر را چاپ کنن زمان اجرا صفحه پرینت ویندوز باز می شه و هیچ چیز در صفحه چاپ نمی شه؟! فقط در صورتی خروجی نمایش داده می شه که به جای دستور print از document.write استفاده کنم. لازم به ذکره کدها هیچ مشکلی ندارن و از مثال موجود در فایل آموزشی استفاده کردم.

لقمان آوند

سلام
یه اشتباه در نامگذاری بوده که در جلسه 6 دوره توضیح دادیم و مشکل رو رفع کردیم. می تونید زودتر جلسه 6 رو ببینید.

سنا فعله گری replyپاسخ

سلام ببخشید چرا نمی شه فیلم ها را دانلود کرد وقتی save video as را می زنیم صفحه html ذخیره می شود

لقمان آوند

تست کردیم مشکلی نبود .
از مرورگر کروم استفاده کنید . روی لینک راست کلیک کنید و save link بزنید.

Alireza Sajedi replyپاسخ

سلام علت اینکه در خروجی مرورگرم نتایج به صورت خطی چاپ میشن چیه؟ من میخوام زیر هم چاپ بشن ممنونم.

وحید صالحی

یک تگ br بعد از دستور چاپ قرار بدید

Alireza Sajedi replyپاسخ

سلام استاد لطفا کد br رو به فایل common اضافه کنید.

esmipour68 replyپاسخ

دمت گرم، عالی بودددددددددددددددددددد

it,one replyپاسخ

سلام و خسته نباشید خدمت استاد اوند عزیز بنده چند تا مبحث رو نفهمیدم اول اینکه
var itone = {name:”mrsh”,age:16,interest:”all programings “}
الان ما توی ابجکت خصوصیت داریم درسته خصوصیت ها مثل name هست یا age ولی method ها اینجا چی هست ۱؟‌ رفتار ها !؟‌
گفتیم
document.write();
document یه شی هست درسته !؟‌
و write یه رفتار توی سند پس property ها کجا هستند ۱؟‌
و در اخر اینکه class چیه مجموعه ای از ابجکت ها میشه یه مثال در مورد class بزنید !؟‌
سوال دیگه ای داشتم و اینکه
window.alert()
اینجا ما بهش گفتیم که برو توی شی ویندو و واسه ما string رو الرت کن درسته !؟‌ که alert یدونه رفتاره یا بهتره بگم رفته توی شی window و تابع alert رو اجرا کرده ۱؟‌ کدوم حالته الان alert یه تابعه یا یه رفتار یا هردو
پس این کد با
alert(“is string “); چه تفاوتی میکنه اینجا ما بهش نمیگیم توی چه شی ای پیام رو نمایش بده !‌؟

ممنون بابت اینکه وقت گذاشتید 🙂

لقمان آوند

سلام
همون داکیومنت متدها و ویژگی های خودشو داره. در مورد بخونید. اینجا می تونید ببینید.
کلاس یه مفهوم انتزاعی هست و مشخص کننده دسته ای از اشیاء مشابه هم هست. مثلا کلاس انسان اشیاء علی، محمد و … رو داره.
بله alert یه متد از شی window هست.
متد های شی window توی جاوااسکریپت استثنائا می تونن مستقیما صدا زده بشن و نیازی به آوردن window. قبل از اونها نیست.
همه این موارد رو توی دوره گفتیم ادامه رو ببینید …

محمدرضا قاسمی replyپاسخ

من از دستور document.write دارم استفاده میکنم. نمیدونم چجوری که روی فایل آموزشی شما دستور print‌ عینا مثل document.write داره عمل میکنه!!!

محمدرضا قاسمی replyپاسخ

مشکل حل شد. من متوجه نشده بودم که شما یه تابع تعریف کردین …

مسلم دهقان replyپاسخ

سلام . تابع print شما بعد از چاپ یک مقدا، اینتر کرده و به سطر جدید منتقل می شود. اما برای من اینطور نیست.

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.