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

مهمان گرامی، خوش‌آمدید!
شما قبل از این که بتوانید در این انجمن مطلبی ارسال کنید باید ثبت نام کنید.

نام کاربری
  

گذرواژه‌
  





جستجوی انجمن‌ها

(جستجوی پیشرفته)

آمار انجمن
» اعضا: 3,596
» آخرین عضو: behzad
» موضوعات انجمن: 10,417
» ارسال‌های انجمن: 14,647

آمار کامل

کاربران آنلاین
در حال حاضر 706 کاربر آنلاین وجود دارد.
» 0 عضو | 706 مهمان
، ، ، ، Applebot

آخرین موضوع‌ها
پرسودترین کالا برای صادرا...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: fariba555
امروز، ۰۵:۱۳ عصر
» پاسخ: 0
» بازدید: 31
رزرو اقامتگاه: برنامه‌ریز...
انجمن: سفرهای داخلی
آخرین ارسال توسط: mahwamah
۰۵/۶/۲۱، ۱۲:۰۴ عصر
» پاسخ: 1
» بازدید: 752
سفر به پرطرفدارترین جزیره...
انجمن: سفرهای داخلی
آخرین ارسال توسط: mahwamah
۰۵/۶/۲۱، ۱۲:۰۱ عصر
» پاسخ: 1
» بازدید: 608
بهترین انتخاب برای اقامت ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: mahwamah
۰۵/۶/۲۱، ۱۱:۵۸ صبح
» پاسخ: 1
» بازدید: 677
Yulgang W Beginner Tips: ...
انجمن: کامپیوتر و اینترنت
آخرین ارسال توسط: Kaevorlly
۰۵/۶/۱۴، ۰۶:۲۲ صبح
» پاسخ: 0
» بازدید: 24
COD MW4 Matchmaking Guide...
انجمن: اسکریپت ها و سیستم های مدیریت محتوا
آخرین ارسال توسط: Andrew736
۰۵/۵/۲۹، ۱۲:۲۰ عصر
» پاسخ: 0
» بازدید: 9
MLB The Show 26 Conquest ...
انجمن: شبکه و سرور
آخرین ارسال توسط: Andrew736
۰۵/۵/۲۹، ۱۲:۰۰ عصر
» پاسخ: 0
» بازدید: 6
Master Monopoly Go Tourna...
انجمن: شبکه و سرور
آخرین ارسال توسط: Andrew736
۰۵/۵/۲۹، ۱۱:۴۲ صبح
» پاسخ: 0
» بازدید: 5
U4GM Guide: How to Optimi...
انجمن: اسکریپت ها و سیستم های مدیریت محتوا
آخرین ارسال توسط: jhb66
۰۵/۵/۲۹، ۰۸:۱۵ صبح
» پاسخ: 0
» بازدید: 10
U4GM PoE 2 Runic Ward Def...
انجمن: کد نویسی
آخرین ارسال توسط: jhb66
۰۵/۵/۲۸، ۰۸:۰۲ صبح
» پاسخ: 0
» بازدید: 12
MLB The Show 26 Tips from...
انجمن: اسکریپت ها و سیستم های مدیریت محتوا
آخرین ارسال توسط: jhb66
۰۵/۵/۲۸، ۰۷:۴۸ صبح
» پاسخ: 0
» بازدید: 4
U4GM Guide to Smart Monop...
انجمن: شبکه و سرور
آخرین ارسال توسط: jhb66
۰۵/۵/۲۸، ۰۷:۱۰ صبح
» پاسخ: 0
» بازدید: 6
چرا اجاره ویلا بهترین گزی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: mahwamah
۰۵/۵/۲۷، ۱۰:۳۰ صبح
» پاسخ: 1
» بازدید: 660
اجاره ویلا در شمال؛ ترکیب...
انجمن: سفرهای داخلی
آخرین ارسال توسط: mahwamah
۰۵/۵/۲۷، ۱۰:۲۷ صبح
» پاسخ: 1
» بازدید: 662
اقامتی جمع‌وجور، راحت و ا...
انجمن: سفرهای داخلی
آخرین ارسال توسط: mahwamah
۰۵/۵/۲۶، ۱۲:۳۰ عصر
» پاسخ: 1
» بازدید: 562

 
  گیاهان آپارتمانی
ارسال کننده: sorenbam - ۹۷/۳/۲، ۱۱:۳۲ صبح - انجمن: گفتگوی آزاد - بدون پاسخ

هوای مورد نیاز گیاه :
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
نیاز به تعویض هوا و ورورد هوای جدید دارند این کار اغلب با باز نمودن پنجره و ورورد هوای بیرون از اتاق انجام می شود .این عمل باعث تقویت ساقه گیاه شده و باعث می شود گیاه در برابر انواع بیماری ها مقاوم شود . از وزش مستقیم باد به سمت گیاه خودداری کنید مانن هوا و باد کولر ؛از نشتی گاز اجاق ،بخاری،و چراغ گازی دیواری جلوگیری کنید .اگر هوای بیرون از اتاق از درون آ« سردتر بود با باز گذاشتن پنجره به کیاه آسیب خواهید زد .تغییر ناگهانی درجه حرارت محیط زیست گیاه باعث ریزش برگ های تحتانی آن می شود.




دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

چاپ این مطلب

  چرا نباید از تلگرام طلایی استفاده کنیم؟
ارسال کننده: hoboot - ۹۷/۳/۲، ۰۴:۵۷ صبح - انجمن: هک و امنیت - پاسخ (2)

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

دقت داشته باشید اولین و مهم‌ترین نکته برای استفاده از پیام‌رسان‌ها، حفظ امنیت شما ست. ما در این انجمن همیشه توصیه می‌کنیم از اپ‌هایی استفاده کنید که از سیستم رمزگذاری «end-to-end» استفاده می‌کنند. سیستم رمزگذاری «end-to-end» پیام‌ فرستنده را در مبدا رمزگذاری می‌کند، به طوری که فقط کاربر دریافت‌کننده می‌تواند آن را رمزگشایی کند. در صورتی که این نسخه‌ها از جمله تلگرام طلایی، فاقد این امکانات امنیتی هستند.
با این‌که تلگرام طلایی بر پایه اپلیکیشن تلگرام ساخته شده است؛ اما توجه داشته باشید که این برنامه‌ها می‌توانند امنیت و حریم شخصی شما را تهدید کنند. اپلیکیشن‌ها را حتما از جایی معتبر مانند Google Play  یا Apple Store دانلود کنید. زیرا این فروشگاه‌های معتبر اجازه انتشار اپلیکیشن‌های تقلبی و مخرب را نمی‌دهند و کاربران با خیالی آسوده‌تر می‌توانند اپلیکیشن مورد نظر خود را در این فروشگاه‌ها دانلود کنند.

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

چاپ این مطلب

  فن خنک کننده ویدئو پروژکتور
ارسال کننده: videoprojector - ۹۷/۳/۱، ۰۴:۲۴ عصر - انجمن: معرفی سایت، وبلاگ و خدمات - بدون پاسخ

فن ویدئو پروژکتور وظیفه خنک کردن دستگاه را بر عهده دارد. باید این را بدانیم که همواره باید به طور مرتب دستگاه را تمیز و سرویس کنیم تا فن دستگاه به مشکل بر نخورد.البته ممکن است گاهی ایرادات برقی برای فن دستگاه به وجود آمده باشد و همین مورد باعث خرابی فن شود.  برد اصلی دستگاه، برد تامین پاور، قطعات الکترونیکی، سیم‌کشی و ایرادات فنی ریز دیگر نیز می‌توانند مشکلاتی را در دستگاه به وجود بیاورند. تهیه از ایراژکتور

[تصویر:  fan440.jpg]

چاپ این مطلب

  مزایای ثبت برند لبنیات چیست ؟
ارسال کننده: kara - ۹۷/۳/۱، ۱۲:۲۳ عصر - انجمن: قوانین ثبت شرکتها، موسسات و برندها - بدون پاسخ

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

چاپ این مطلب

  آموزش جاوا اسکریپت - فانکشن
ارسال کننده: mesterweb - ۹۷/۳/۱، ۰۴:۴۰ صبح - انجمن: JavaScript - بدون پاسخ

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

فانکشن‌ها در واقع تکه‌کدهایی هستند که قرار است یک یا چند عملیات کلی را روی کد ما اعمال کنند. فانکشن‌ها مانند اکشن‌هایی هستند که می‌توانند کار خاصی را در زمانی که ما از آن‌ها می‌خواهیم تکرار کنند. برای درک بهتر عملکرد فانکشن‌ها، بدن انسان را در نظر بگیرید. قلب وظیفه پمپاژ و خون‌رسانی را به تمامی اعضای دیگر بدن دارد. قلب به‌عنوان یک فانکشن اصلی در بدن، یک وظیفه مشخص دارد. این فانکشن، یک ورودی دریافت می‌کند (خون) و این ورودی را با اعمال تغییراتی، مجددا به بدن بازمی‌گرداند. مثال دیگر، خودرو است. در یک خودرو، سیستم سوخت‌رسانی یک فانکشن است. با دریافت سوخت از پمپ بنزین، آن را به دیگر اعضای ماشین که به سوخت نیاز دارند منتقل می‌کند.

فانکشن‌ها به دو صورت کلی نوشته می‌شوند:
  • فانکشن‌های دارای نام
  • فانکشن‌های بدون نام یا anonymus
تعریف فانکشن دارای اسم:
اگر بخواهیم یک فانکشن را به‌گونه‌ای بنویسیم که هر کجای برنامه قابل صدا کردن و استفاده باشد، باید به آن اسم بدهیم. فانکشن‌های دارای اسم قابل صدا زدن و اجرای مجدد در هر کجای برنامه هستند. همچنین باید بدانید کد ما به‌صورت خودبه‌خود اجرا نمی‌شود و تا زمانی که این فانکشن فراخوانی نشود،‌ اتفاقی نخواهد افتاد.

برای تعریف یک فانکشن دارای اسم از روش زیر استفاده می‌کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانطور که می‌بینید این بار بعد از کلمه کلیدی function که کارش تعریف فانکشن است، یک نام نوشته‌ایم که در واقع نام فانکشن ما محسوب می‌شود و از این به بعد از طریق این نام می‌توانیم این فانکشن را صدا بزنیم.

می‌خواهیم با زدن یک دکمه فانکشنی را که قبلا تعریف کردیم صدا بزنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

برای صدا زدن این فانکشن، کافی است نام آن را به همراه دو پرانتز در کنار آن بنویسیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

روش صدا زدن فانکشن :

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

روش دیگری نیز برای تعریف یک فانکشن دارای نام هست و آن ذخیره فانکشن در داخل یک متغیر است. روش صدا زدن چنین فانکشنی هیچ تفاوتی با حالت بالا ندارد.
برای این کار ابتدا یک متغیر تعریف می‌کنیم و فانکشن خود را به‌عنوان مقدار آن می‌نویسیم.
مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا اگر بخواهیم این فانکشن را صدا بزنیم باز هم می‌نویسیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانند روالی که در جلسات گذشته داشتیم، این جلسه نیز کمی تمرین انجام می‌دهیم تا اطلاعاتمان کامل‌تر شود! فانکشن جزو موارد کلیدی جاوا اسکریپت است و به همین خاطر تمرین‌های جذاب‌تری در این جلسه منتظر شما است! آماده یادگیری موارد تازه باشید!

تمرین اول: 
یک دکمه بنویسید که با کلیک روی آن تاریخ روز را نمایش دهد.

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

روش اول: نوشتن همه کدها در داخل تگ اچ‌تی‌ام‌ال

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در همین جا که در حال نوشتن یک استرینگ در داخل یک اتریبیوت هستیم یک نکته کوچک جالب وجود دارد! وقتی می‌خواهیم به یک اتریبیوت اچ‌تی‌ام‌ال مقدار بدهیم بعد از مساوی و نام اتریبیوت، علامت سینگل کوتیشن ' '  یا دابل کوتیشن " "  قرار می‌دهیم. مثلا اتریبیوت کلاس‌های سی‌اس‌اس به‌ این صورت نوشته می‌شود: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

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

فایل HTML

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا وارد فایل جاوا اسکریپت می‌شویم و یک فانکشن با همین نام که در اتریبیوت اچ‌تی‌ام‌ال گفته‌ایم تعریف می‌کنیم:
ابتدای صفحه یک متغیر عمومی برای ذخیره تاریخ تعریف می‌کنیم؛ متغیری که با هر بار صدا کردن فانکشن مقدار آن با تاریخ روز عوض و برابر می‌شود.
سپس یک فانکشن برای دریافت زمان روز تعریف می‌کنیم. داخل این فانکشن ما از یک فانکشن پیش‌فرض قرار داده‌شده در جاوا اسکریپت به اسم Date() استفاده می‌کنیم. این فانکشن هر جا که صدا زده شود، تاریخ دقیق را به‌صورت روز و حتی ثانیه به ما می‌دهد. روال استاندارد استفاده از تابع تاریخ اینگونه است که ابتدا آن را در یک متغیر بریزیم و قبل از صدا زدن فانکشن از کلمه کلیدی new استفاده کنیم تا یک آبجکت جدید از تابع تاریخ برای ما ساخته شود. می‌دانیم که کمی مبحث پیچیده و گنگ به نظر می‌رسد؛ ولی چندان خود را درگیر نام‌ها نکنید! همه این موضوعات در آینده بررسی خواهد شد! فعلا فقط بدانید که گرفتن تابع تاریخ به‌صورت زیر خواهد بود.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اگر حالا کد خود را اجرا کنید، خواهید دید که با کلیک روی دکمه «امروز چندم است»، تگ اچ‌تی‌ام‌ال با آی‌دی showTime تغییر پیدا می‌کند و تاریخ روز را نمایش می‌دهد! به همین سادگی!

document.getElementById چیست و چه کار می‌کند؟
در این جلسه یک توضیح مختصر می‌دهیم؛ ولی توضیح تکمیلی را به جلسه مخصوص انتخاب تگ‌های ‌اچ‌تی‌ام ال در جاوا اسکریپت موکول می‌کنیم.

این‌طور فرض کنید که همیشه باید یک پل رابط بین اچ‌تی‌ام‌ال و جاوا اسکریپت وجود داشته باشد که به کمک آن بتوانیم محتوای اچ‌تی‌ام‌ال صفحه را تغییر بدهیم. این پل رابط را یک آبجکت به نام document در نظر بگیرید! در واقع فرض کنید یک درخت (ظرف، جعبه یا هر چیز دیگری) بزرگ به نام document داریم که تمامی تگ‌های اچ‌تی‌ام‌ال و محتویات صفحه را در بر می‌گیرد. هر یک از تگ‌های اچ‌تی‌ام‌ال شاخه‌های این درخت هستند!
برای گرفتن یک شاخه از این درخت باید به نحوی آن را انتخاب کنیم. برای انتخاب چند راه پیش‌رو داریم. انتخاب توسط آی‌دی المان یکی از راه‌ها است و برای این کار از دستوراتی مثل getElementById استفاده می‌کنیم. این دستور دنبال یک المان اچ‌تی‌ام‌ال با id که به آن می‌دهیم می‌گردد و آن را برای تغییر توسط جاوا اسکریپت آماده می‌کند. بعد از انتخاب المان اچ‌تی‌ام‌ال می‌توانیم هر گونه تغییری که خواستیم روی آن اعمال کنیم. مثلا می‌توانیم محتوای اچ‌تی‌ام‌ال آن را با کمک دستور innerHTML تغییر بدهیم. در اینجا ما هم چنین کاری را انجام داده‌ایم.

 return در فانکشن
اگر خاطرتان باشد، در همین ابتدای آموزش گفتیم که فانکشن‌ها یک ورودی به‌عنوان متغیر دریافت می‌کنند و سپس فعل و انفعالاتی روی این ورودی صورت می‌گیرد و نتیجه در قالب خروجی به ما داده خواهد شد.
برای دریافت خروجی از یک فانکشن دو کار انجام می‌دهیم! یا یک متغیر در بیرون فانکشن تعریف می‌کنیم و سپس این متغیر را درون فانکشن استفاده می‌کنیم و تغییر می‌دهیم! بدین ترتیب با اتمام فانکشن، متغیر ما نیز تغییر کرده است! ولی این روش همیشه جوابگو نیست! مثلا فرض کنید یک فانکشن ۵۰۰ خطی دارید. (البته هیچ وقت نگذارید یک فانکشن در کد شما انقدر زیاد شود و آن را به بخش‌ها و فانکشن‌های کوچکتر تقسیم کنید). در خط ۲۵۰ام شرطی وجود دارد که در صورت انجام شدن آن شرط، شما قصد دارید همانجا کار فانکشن را متوقف کنید و خروجی به‌دست‌آمده را برای ادامه کار تحویل بدهید!

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اگر به نتیجه پیغام الرت نگاه کنیم، متوجه می‌شویم که مقدار return شده از فانکشن را به ما نشان داد. در واقع هر جا این فانکشن صدا شود، مقداری که در آن جلوی return نوشته می‌شود بازگردانده خواهد شد! 

به مثال دیگری توجه کنید!

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این مثال چه اتفاقی افتاده است؟
ما یک متغیر به‌عنوان سن خودمان در نظر گرفته‌ایم. بعد از آن یک متغیر بولین در نظر گرفته‌ایم که چک کنیم آیا این سن بیشتر از سی سال است یا خیر. در حالت پیش‌فرض ما مقدار false را به این متغیر داده‌ایم؛ چون فکر کرده‌ایم که سن و سال پیش‌فرض کاربر ما کمتر از ۴۰ است. 
سپس درون فانکشن با چک کردن سن و سال متغیر myAge گفته‌ایم که آیا وی سنش بیشتر از ۴۰ است یا کمتر!‌ اگر کمتر بود isOld با مقدار false و اگر بیشتر از ۴۰ بود متغیر isOld مقدارش به true تغییر پیدا خواهد کرد! در نهایت مقدار isOld را بازگردانده‌ایم. 
حالا در یک متغیر جدید به نام isHeOld این فانکشن را صدا کرده‌ایم. نتیجه این کار این می‌شود که مقدار نهایی فانکشن isOld درون متغیر isHeOld ذخیره می‌شود! یعنی اگر isHeOld را صدا بزنیم عبارت true یا false به ما برگردانده خواهد شد!

حالا یک مثال دیگر خواهیم زد. در این مثال بعد از return، فانکشن ما کارهای دیگری نیز انجام می‌دهد! نکته مهم این تمرین این است که هر کدی که بعد از return در فانکشن نوشته می‌شود اجرا نخواهد شد و انگار نادیده گرفته می‌شود؛ چون فانکشن ما کار خود را انجام داده و مقدار لازم را به ما برگردانده است. 

اگر در فانکشن اگر یک if یا else داشته باشیم که در آن return کنیم باز هم همین اتفاق می‌افتد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

سؤال این است که چرا باید از فانکشن‌ها استفاده کنیم؟
ساده‌ترین پاسخ این است که شما دیگر نیازی ندارید یک تکه کد را در ۱۰ جای مختلف بنویسید و هر بار کد تکراری را اجرا کنید. یک بار یک فانکشن برای یک کار خاص تعریف می‌کنید و هر وقت نیاز شد، آن را استفاده می‌کنید. این کار به شدت خوانایی و کارکرد کد را تحت تأثیر قرار می‌دهد. 

چاپ این مطلب

  آموزش جاوا اسکریپت - انتخاب المان‌های HTML
ارسال کننده: mesterweb - ۹۷/۳/۱، ۰۴:۱۹ صبح - انجمن: JavaScript - بدون پاسخ

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

تمامی صفحات وب از کدهای اچ‌تی‌ام‌ال تشکیل شده‌اند. با کمک CSS و استایل‌های آن، این کدها ظاهر مرتب‌تر و زیباتری به خود می‌گیرند. جاوا اسکریپت نیز به شما کمک می‌کند این المان‌های زیبا را تغییر دهید. مثلا محتوای اچ‌تی‌ام‌ال‌ها را تغییر دهید، آن‌ را حذف کنید یا متنی به آن اضافه کنید و ...! در این جلسه با نحوه انتخاب المان‌های اچ‌تی‌ام‌ال آشنا خواهیم شد. 

چگونه یک المان اچ‌تی‌ام‌ال را با کمک جاواسکریپت انتخاب کنیم؟
اگر با زبان سی‌اس‌اس آشنا باشید، می‌دانید که به‌صورت کلی چند روش برای انتخاب المان‌ها وجود دارد! انتخاب بر اساس id، انتخاب بر اساس نام class یا انتخاب بر اساس نوع تگ (مثلا کل تگ‌های p یا h2 صفحه).
در جاوا اسکریپت نیز همین قانون برقرار است. یعنی شما می‌توانید المان‌های صفحه را بر اساس نام id، نام کلاس (Class) یا نوع تگ انتخاب کنید. در تمامی این حالت ما از آبجکتی به نام document کمک می‌گیریم!‌ آبجکت داکیمونت را مانند یک ظرف خیلی بزرگ در نظر بگیرید که کل اطلاعات صفحه در آن ذخیره شده است. پس وقتی می‌خواهیم به صفحه اچ‌تی‌ام‌ال در جاوا اسکریپت دسترسی داشته باشیم، می‌رویم و داخل این جعبه document را نگاه می‌کنیم و با جستجو در آن المان‌ مورد نظرمان را انتخاب (select) می‌کنیم. 

برای انتخاب المان‌های اچ‌تی‌ام‌ال از جعبه document روش‌های زیر را یاد خواهیم گرفت:

انتخاب المان بر اساس ID:
در این حالت فرض می‌کنیم که المان‌های اچ‌تی‌ام‌ال‌ ما دارای id منحصربه‌فردی هستند که به کمک آن‌ می‌توانیم المان‌ را شناسایی و توسط جاوا اسکریپت انتخاب و در صورت تمایل تغییرات مورد نیازمان را اعمال کنیم. 

دستور کلی جاوااسکریپت برای انتخاب المان بر اساس شناسه یا آی‌دی به‌صورت زیر است:
این کار توسط دستور  ()getElementById  انجام می‌شود. در این دستور (یا همان متد خودمان) ما یک پرانتز داریم که داخل این پرانتز باید دو تا  “”  بگذاریم. سپس داخل این کوتیشن‌ها نام آی‌دی المان تعریف‌شده در اچ‌تی‌ام‌ال را قرار می‌دهیم.

مثلا یک المان با ID دمو داریم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا می‌خواهیم آن را توسط جاوا اسکریپت انتخاب کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این مثال ما المان HTML با آی‌دی select-by-id را انتخاب کرده‌ایم و می‌توانیم روی آن تغییر ایجاد کنیم.

انتخاب بر اساس نام تگ:
گاهی می‌خواهیم تمامی تگ‌های اچ‌تی‌ام‌ال را به‌صورت یکجا انتخاب کنیم! مثلا می‌خواهیم هر چه تگ P یا H1 در صفحه است، یکجا انتخاب کنیم و یکجا آن‌ها را تغییر دهیم. در این حالت جاوااسکریپت روش مخصوص خودش را به ما می‌دهد. این روش که با نام selectByTagName شناخته می‌شود. دستور نوشتن انتخاب بر اساس نام تگ نیز به شکل زیر است:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این مثال ما کل المان‌های پاراگراف را که با تگ p در صفحه شناخته می‌شوند، انتخاب کرده‌ایم. دقت کنید که در اینجا ما مجموعه‌ای از المنت‌ها را با هم انتخاب می‌کنیم، پس در دستور خود کلمه Elements را به‌جای Element در دستور قبلی می‌نویسیم. 

انتخاب المان بر اساس نام کلاس:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

گاهی می‌خواهیم همه المان‌هایی را که دارای یک کلاس مشخص هستند، انتخاب کنیم. در این حالت می‌توانیم از دستور  document.getElementsByClassName  استفاده کنیم و نام کلاس را همراه با “”  درون پرانتز بگذاریم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

ذخیره المان اچ‌تی‌ام‌ال در متغیر
اگر بخواهیم حرفه‌ای‌تر برخورد کنیم، بهتر است المان انتخاب‌شده را در داخل یک متغیر بریزیم. بدین ترتیب هر وقت نام آن متغیر را بنویسیم به تمامی محتوای آن دسترسی داریم و می‌توانیم روی آن هر تغییری که دوست داریم اعمال کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

در ادامه لیست تغییراتی را که به‌طور کلی روی المان‌های اچ‌تی‌ام‌ال بعد از انتخاب توسط جاوا اسکریپت انجام می‌دهیم، مرور می‌کنیم:

تغییر در متن:
فرض کنید می‌خواهید متن یک تگ p را بعد از کلیک روی یک دکمه تغییر دهید. نه سی‌اس‌اس نه اچ‌تی‌ام‌ال هیچکدام امکان تغییر در متن را بعد از رندر شدن توسط مرورگر نمی‌دهند؛ ولی جاوا اسکریپت این امکان را در اختیار شما قرار می‌دهد. برای تغییر متن از دستور innerHTML بعد از نام المان استفاده می‌شود.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در زیر مرحله به مرحله این کار را انجام داده‌ایم:

مرحله اول: انتخاب المان HTML  در صفحه
با توجه به نکاتی که بالاتر گفتیم‌ می‌توانیم یک المان اچ‌تی‌ام‌ال را بر اساس id یا class یا تگ آن انتخاب کنیم. برای مثال برای تغییر محتوای متن المان p با نام irani مراحل زیر را طی ‌می‌کنیم:

فایل html

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

فایل جاوا اسکریپت

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این مرحله ما در واقع از آن المان اچ‌تی‌ام‌ال که انتخاب کرده‌ایم یک آبجکت می‌سازیم. آبجکت را در جلسات بعدی مفصل‌تر صحبت خواهیم کرد؛ ولی برای درک بهتر، آبجکت اچ‌تی‌ام‌ال را مانند ظرفی در نظر بگیرید که درون آن دستورات و روش‌های مختلفی برای تغییر المان ذخیره شده است! برای دسترسی به این دستورات، کافی است نام دستور مورد نظرمان را در کنار نام آبجکت بنویسیم و یک علامت .  بگذاریم! 

نکته مهم: می‌توانیم المان اچ‌تی‌ام‌ال را  بعد از انتخاب در یک متغیر ذخیره کنیم. این کار چه فایده‌ای دارد؟ مهم‌ترین فایده آن است که اگر بخواهیم بعدا تغییر دیگری روی این المان اعمال کنیم مجبور نیستیم باز هم دستور  document.getElementById('irani') را بنویسیم و این کارها را تکرار کنیم! چون تمامی اطلاعات المان در یک متغیر ذخیره شده و کافی است نام متغیر را به همراه دستور دلخواه کنار آن بنویسیم!
برای مثال محتوای المان اچ‌تی‌ام‌ال با id با نام irani را در یک متغیر به نام  elem ذخیره می‌کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مثال‌های دیگر:

مثال اول:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مثال دوم: در این مثال می‌خواهیم کمی متفاوت عمل کنیم! مثلا محتوای ذخیره‌شده در یک متغیر را روی یک المان بنویسیم. 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانطور که دیدید، یک استرینگ را که در یک متغیر ذخیره شده است، به‌عنوان متن جدید به تگ span با آی‌دی change-me داده‌ایم.

مثال سوم: در این مثال قصد داریم کمی خلاقانه‌تر از این موضوع استفاده کنیم.
در جاوا اسکریپت دستوری به نام prompt وجود دارد. این دستور یک پنجره مشابه الرت باز می‌کند؛ با این تفاوت که کاربر می‌تواند در این پنجره متن هم تایپ کند. 
برای ساخت یک پنجره prompt، یک متغیر با نام دلخواه می‌سازیم و دستور window.prompt را به عنوان مقدار به آن می‌دهیم. در نتیجه این متغیر یک پنجره propmt ٰرا در مرورگر باز می‌کند.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همچنین دقت کنید دستور innerHTML تنها متن را تغییر نمی‌دهد! در واقع تمامی HTML را که داخل آن تگ وجود دارد تغییر می‌دهد. برای مثال اگر المان اچ‌تی‌ام‌ال شما دارای بچه‌های دیگری مثل تگ‌های‌ پاراگراف‌ یا span یا هر چیز دیگری باشد، بعد از این کار حذف و محتوای جدید جایگزین آن می‌شود!

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

تغییر attributeهای اچ‌تی‌ام‌ال: 
یکی دیگر از مواردی که می‌توانید روی المان‌های اچ‌تی‌ام‌ال انجام دهید، تغییر attribute-های آن‌ها است. برای این کار کافی است نام attribute را بعد از المان اچ‌تی‌ام‌ال بنویسید و مقدار جدید را بدان اختصاص دهید. 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مثال: برای مثال در زیر می‌خواهیم اتریبیوت src در تصویر دارای ID با نام change-me را تغییر دهیم! برای این کار به‌راحتی دستور زیر می‌نویسیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در مثال بعدی می‌خواهیم مقدار یک اینپوت متنی در اچ‌تی‌ام‌ال را در صفحه چاپ کنیم! برای این کار ابتدا باید مقدار اینپوت را توسط جاوا اسکریپت ذخیره کنیم:

HTML

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

HTML

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

فایل JS

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

با تغییر اتریبیوت disabled در تگ Button و true یا false کردن آن می‌توانیم دکمه‌ها را فعال یا غیر فعال کنیم. 

نکته پایانی:
همانطور که گفتیم هر اتریبیوتی در هر المان اچ‌تی‌ام‌الی قابل دسترسی است. کافی است نام آن اتریبیوت را بنویسید تا مقدار آن را بگیرید. مثلا برای دریافت نام یک فرم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

استفاده از HTML5 Data Attributes در جاوا اسکریپت:
یکی از قابلیت‌های HTML 5 امکان اضافه کردن اتریبیوت‌های جدید به تگ‌های HTML است. مثلا فرض کنید می‌خواهید به یک المان p علاوه بر اتربیوت id و class که به‌صورت پیش‌فرض در همه المان‌های p وجود دارند یک اتریبیوت دلخواه اضافه کنید که محتوای دلخواهتان را در خودش ذخیره می‌کند. مثلا می‌خواهیم همه المان‌های p ما دارای یک متن پیش‌فرض باشند که در صورت خالی بودن متنشان، این متن در آن‌ها نمایش داده شود.
برای این کار یک راه حل این است که یک اتریبیوت Data به اچ‌تی‌ام‌ال تگمان اضافه کنیم. قاعده کلی اضافه کردن اتریبیوت به اچ‌تی‌ام‌ال به‌صورت زیر است:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

بدین ترتیب که همیشه کلمه data-  و بعد از آن‌، نام اتریبیوت دلخواهمان را می‌نویسیم. مثلا

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این مثال ما یک تگ p با اتریبیوت دلخواه customer ساخته‌ایم. اگر کلمه اتریبیوت ما چندبخشی باشد (مانند customer name) برای جدا کردن هر کلمه از علامت - استفاده می‌کنیم و نام هر اتریبیوت را می‌نویسیم. مثلا:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همچنین شما می‌توانید بی‌نهایت اتریبیوت دلخواه به المان‌های اچ‌تی‌ام‌ال خود اضافه کنید و هیچ محدودیتی در این زمینه برای شما اعمال نشده است. برای مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

وقتی بخواهیم مقدار این اتریبیوت‌ها را در جاوا اسکریپت بگیریم، چه کار باید بکنیم؟
اینجا کمی کار ما دچار تغییر می‌شود! برای این کار مراحل زیر را طی می‌کنیم:

مرحله اول: انتخاب المان بر اساس id یا هر انتخاب‌گر دیگری که یاد گرفته‌ایم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانطور که گفتیم می‌توانیم هر المان اچ‌تی‌ام‌ال را در یک متغیر ذخیره کنیم تا هر زمان خواستیم روی آن تغییر دهیم مجبور نباشیم کدها را از نو بنویسیم. بدین ترتیب کد بالا به‌صورت زیر می‌شود:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مرحله دوم: برای دریافت مقدار custom attribute هایی که خودمان به تگ اچ‌تی‌ام‌ال اضافه کرده‌ایم از قاعده کلی زیر استفاده می‌کنیم:

elementName.dataset.attributeName

این بدین مفهوم است که ما تمامی اتریبیوت‌های جدیدمان را در یک جا به نام dataset ذخیره داریم و از داخل این آبجکت می‌توانیم هر یک را جدا‌گانه داشته باشیم. برای مثال در المنت اچ‌تی‌ام‌ال زیر خواهیم داشت:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همچنین به یاد داشته باشید در اتریبیوت‌های چنداسمی به‌جای علامت - حرف اول را بزرگ می‌نویسیم.
مثلا data-custom-name می‌شود customerName

در نهمین جلسه از‌ آموزش جاوا اسکریپت با نحوه انتخاب المان‌های‌ اچ‌تی‌ا‌م‌ال صفحه آشنا شدیم. نکات نگفته‌ی بسیاری در رابطه با انتخاب و تغییر المان‌های اچ‌تی‌ام‌ال وجود دارد که سعی می‌کنیم در جلسات بعدی و بعد از یادگیری مباحث مربوط به array آن‌ها را نیز بازگو کنیم. 

چاپ این مطلب

  آموزش جاوا اسکریپت - مقایسه‌گرها و if و else
ارسال کننده: mesterweb - ۹۷/۳/۱، ۱۲:۲۸ صبح - انجمن: JavaScript - بدون پاسخ

در هشتمین جلسه از آموزش جاوا اسکریپت به سراغ مقایسه‌گر‌های مختلف می‌رویم، سپس یکی از مهم‌ترین موضوعات هر زبان برنامه‌نویسی، یعنی if و elseها را زیر ذره‌بین می‌بریم.

مقایسه‌گرها:
قبل از شروع آموزش باید با اهمیت و نیازی که به مقایسه‌گرها داریم، آشنا شویم. همان‌طور که از نام مقایسه‌گر پیداست، وظیفه‌ی آن، مقایسه‌ی بین متغیرها است؛ به‌عنوان مثال، در متغیرهای عددی ببینید کدام عدد از کدام عدد بزرگتر یا کوچکتر است. همین که بدانید عدد ۲ از ۳ در جاوا اسکریپت کوچکتر است، در بسیاری از موارد کمک شایانی به شما خواهد کرد!

مقایسه در جاوا اسکریپت انواع بسیاری دارد. نه تنها مقدار متغیرها، بلکه نوع متغیرها نیز قابل مقایسه است؛ به‌عنوان مثال، شما می‌توانید علاوه‌بر مقدار (مثلا ۲ بزرگتر است یا ۴)، نوع متغیرها (استرینگ یا عدد) را نیز مقایسه کنید یا متغیر دلخواهی را از نظر نوع و میزان با متغیر دیگر یکی است یا نه کلی به کمکتان می‌آید.

۱)  مساوی '=' 
درباره‌ی علامت =  قبلا هم صحبت کرده‌ایم و یاد گرفته‌ایم! از مساوی تنها برای اختصاص دادن یک مقدار به یک متغیر استفاده می‌شود و به هیچ‌وجه قدرت مقایسه ندارد.

۲)‌ دو مساوی '==' 
وقتی دو مساوی قرار بدهیم، جاوا اسکریپت این‌طور برداشت می‌کند که باید دو متغیر را از نظر میزان با هم مقایسه کند. مثلا متغیر x=5 را در نظر بگیرید. در نتیجه این مقایسه دو حالت پیش می‌آید. یا مقدار دو طرف مساوی برابر است و مرورگر true بر می‌گرداند یا این تساوی اشتباه است و مرورگر false بر می‌گرداند.
برای مثال فرض کنید یک متغیر با نام x داریم! وقتی x == 5 بنویسیم یعنی چک‌ می‌کنیم که آیا ایکس با ۵ برابر است یا نه! اگر جواب صحیح باشد، مرورگر true بر می‌گرداند و اگر متغیر با مقدار آن سمت مساوی برابر نباشد مرورگر false بر می‌گرداند. 
مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

۳) سه مساوی '==='
وقتی از سه مساوی کنار هم استفاده کنیم، یعنی می‌خواهیم دو متغیر را هم از نظر مقدار و هم از نظر نوع، با یکدیگر مقایسه کنیم. در این حالت باید هر دو طرف مساوی از نظر نوع و مقدار یکسان باشند (یعنی هر دو استرینگ یا هر دو عدد باشند و مقدار آن‌ها نیز یکی باشد).
مثال: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

دو عبارت اول صحیح بود چرا که هم از نظر مقدار و هم از نظر نوع با هم برابر بودند (هر دو عدد هستند) ولی عبارت سوم اشتباه از آب در آمد. چرا؟ چون هر چند مقدار هر دو تای آن‌ها ۴ است ولی از نظر نوع با یکدیگر یکسان نیستند و هر کدام یک مدل داده هستند! یکی عدد و یکی استرینگ (به کوتیشن دور عدد ۴ در متغیر y دقت کنید تا متوجه شوید که ۴ استرینگ است!) پس مرورگر false بر می‌گرداند.
 
۴) !=
وقتی می‌خواهیم ببینیم که فلان عبارت با فلان عبارت مساوی نیست از این اپراتور استفاده می‌کنیم! این دقیقا نقطه بر عکس == تنها است. در این حالت می‌خواهیم چک کنیم که داده‌های دو طرف مساوی نباشند! در این حالت هم به اینکه هر کدام از  طرفین استرینگ هستند یا عدد کاری نداریم و فقط مقدارها را با هم مقایسه می‌کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

5) !==
زمانی که دو مساوی و یک علامت تعجب داشته باشیم یعنی نه تنها از نظر مقداری بلکه از نظر نوع نیز داده‌ها را می‌خواهیم مقایسه کنیم! پس در این حالت دو طرف وقتی از نظر نوع یکی نباشند هم نتیجه عوض می‌شود.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اپراتورهای منطقی:
منظور از اپراتورهای منطقی همان علامت‌های بزرگتر و کوچکتر است که از دوران مدرسه و ریاضیات ابتدایی با آن آشنا هستیم. 

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

بزرگتر یا مساوی =<
وقتی علامت =< قرار دهیم یعنی نه تنها می‌خواهیم بدانیم عبارت سمت چپ از عبارت سمت راست کوچکتر است، بلکه می‌خواهیم بدانیم که این عبارت مساوی آن نیز هست یا خیر. یعنی حتی اگر این دو عبارت مساوی باشند نیز شرط ما را در بر‌ می‌گیرند.  مثلا:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

کوچکتر یا مساوی =>
وقتی علامت => قرار دهیم یعنی نه تنها می‌خواهیم بدانیم عبارت سمت چپ از عبارت سمت راست بزرگتر است یا خیر، بلکه می‌خواهیم بدانیم که این عبارت مساوی آن نیز هست یا خیر. یعنی حتی اگر این دو عبارت مساوی باشند نیز شرط ما را در بر می‌گیرند. مثلا:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

تمرین:
حالا که با متغیرهای عددی، اعمال روی آن‌ها و نحوه مقایسه آن‌ها آشنا شده‌ایم وقت آن رسیده تا چند تمرین ساده برای آشنایی بیشتر انجام دهیم:
تمرین شماره ۱: دو متغیر استرینگی بسازید! سپس با کمک دستور length تعداد کاراکترهای آن‌ها را پیدا کرده و مقایسه کنید که کدام یک از این جملات طولانی‌تر هستند! 
تمرین شماره ۲:‌ با کمک دستور ساخت عدد رندوم، دو عدد به صورت رندوم و تصادفی بسازید و با کمک مقایسه‌گرها آن‌ها را مقایسه کنید.

پاسخ تمرین: 
ابتدا دو متغیر خالی تعریف می‌کنیم! اگر یادتان باشد همیشه بر اساس منطقی که در برنامه داریم می‌توانیم متغیرها را در ابتدا به صورت خالی تعریف کنیم یا آن‌ها را از همان ابتدا دارای مقدار در نظر بگیریم. این موضوع کاملا به سیستمی که قصد تولید آن را دارید، بستگی دارد! 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

در همین مثال، می‌توانستیم از همان ابتدا نیز نوع متغیرها را مشخص کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

وقتی علامت سینگل  ' '  یا دابل کوتیشن  ""   را در روبه‌روی متغیرها می‌نویسیم در واقع به جاوا اسکریپت می‌گوییم که نوع متغیر ما استرینگ بوده و ما یک استرینگ خالی تعریف کرده‌ایم!

خب به ادامه پاسخ تمرین اول بر می‌گردیم. در این مثال قرار شد که دو متغیر استرینگی را از نظر طول مقایسه کنیم. با فرض اینکه هیچ کار دیگری در برنامه انجام نمی‌شود، متغیرهای استرینگی را با متن جدید پر می‌کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا از یک متد جدید در استرینگ‌ها به نام length استفاده می‌کنیم. length یا طول همان‌طور که از نامش پیداست اندازه و تعداد کمی را بیان می‌کند. وقتی بعد از یک متغیر استرینگی کلمه .length نوشته می‌شود در واقع متد دریافت طول کاراکترهای نوشته اجرا می‌شود. 

برای مثال طول متغیر stringOne را این‌گونه می‌سنجیم: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

حالا برای اتمام این تمرین آن‌ها را توسط مقایسه‌گر کوچک‌تر می‌سنجیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

lf و else:
یکی از بنیان‌های هر زبان برنامه‌نویسی استفاده از شرط‌ها است. در واقع منطق بسیاری از اعمال ما را if و  else تشکیل می‌دهد. مثلا وقتی می‌خواهیم برای رفتن به یک سفر برنامه‌ریزی کنیم، می‌گوییم اگر فلان روز تعطیل شد فلان کار را می‌کنم و اگر تعطیل نشد آن یکی کار را انجام می‌دهم و اگر هیچکدام نشد کار دیگری می‌کنم و الی آخر. این موضوع عینا در دنیای برنامه نویسی نیز صدق می‌کند.
به همان پروژه ساده‌ای که در جلسات اول صحبت شد بر می‌گردیم. می‌خواهیم این بار کاری کنیم که اگر یک مشتری ویژه داشتیم درصد تخفیف بیشتری را برای وی لحاظ کند. این کار به سادگی هر چه تمام‌تر امکان‌پذیر است.

فرض کنید متغیری به نام specialCustomer داریم. این متغیر وقتی true باشد یعنی مشتری ما مشتری ویژه است و زمانی که false باشد یعنی مشتری ما ویژه نیست. برای چک کردن این موضوع سراغ if و else ساده می‌رویم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانطور که در بالا مشاهده می‌کنید ما چک کرده‌ایم که اگر مشتری ما ویژه بود، ۱۰۰ تومان از مبلغ کل سفارش وی کسر شود. یعنی (totalPrice -= 100).
می‌توانید به if خود یک else نیز اضافه کنید. else زمانی اتفاق می‌افتد که شرایط مد نظر شما در شرط if به هر دلیلی مورد قبول واقع نشود. بدین ترتیب شما وارد else می‌شود و کد else شما اجرا خواهد شد.
با استفاده از if حالت‌های مختلفی را تعیین می‌کنید و به مرورگر می‌گویید تا در هر شرایط چه تصمیمی بگیرد و چه کاری را انجام دهد. برای نوشتن شرط‌ها ابتدا کلمه if را با دو پرانتز در کنار آن می‌نویسیم و یک آکولاد جلوی آن باز و بسته می‌کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اضافه کردن شرط‌های دیگر
گاهی پیش می‌آید شما می‌خواهید حالت‌های بیشتری را نیز چک کنید. مثلا می‌خواهید بدانید اگر عدد مورد نظر ۰ بود فلان کار را انجام بده، اگر عدد ۱ بود، فلان کار و اگر ۲ بود کار دیگر و الی آخر... برای این کار دو روش پیش روی داریم که با هم مرور می‌کنیم.

روش اول:‌ استفاده از چند if پشت سر هم‌:
در این حالت جاوا اسکریپت از بالا به پایین حرکت می‌کند.
مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانطور که دیدید وقتی چند If پشت هم باشد تک تک آن‌ها چک شده و در صورت درست بودن کد درون آن‌ها اجرا خواهد شد. ولی گاهی اوقات این اتفاق خوشایند نیست! شاید ما بخواهیم بلافاصله بعد از اینکه به شرایط درست رسیدیم، حالت دیگری چک نشود! یعنی به محض اینکه به نتیجه درست رسیدیم قید هرگونه شرط و شروطی را بزنیم و به کار خود ادامه دهیم! اینجاست که حالت دوم یعنی با else if می‌رسیم.

مثال زیر را ببینید:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

استفاده از && و || 
یکی دیگر از ابزارهای مهم در شرط‌گذاری جاوا اسکریپت &&  و  ||  هستند. کاربرد این دو چیست؟‌ یک مثال می‌زنیم! فرض کنید می‌خواهید چک کنید آیا عدد ۴ بین ۵ و ۶ هست یا خیر. برای این کار به سادگی می‌توانیم از && استفاده کنیم. دو علامت & در کنار هم در شرط‌های ما به معنای آن است که بگوییم هم شرط اول برقرار باشد هم شرط دوم! 

مثلا: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مثال دیگری را در مورد همان پروژه مدیریت رستوران با هم مرور می‌کنیم. فرض کنید سه نوع کاربر دارید!‌ کاربری که بالای هزار تومان خرید دارد. کاربری که ویژه است و کاربری که دارای امتیاز بالای ۱۰۰ است! (یا هر نوع دیگری!) می‌خواهید در صورتی که کاربری وجود داشته باشد که هر سه نوع این امتیازها را همزمان دارد و شما بخواهید برای وی کاری کنید چه کار می‌کنید؟ مطمئنا یک شرط با استفاده از && می‌گذارید و برای وی هر کاری خواستید انجام می‌دهید.

مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حتی اگر یکی از شرایط برقرار نباشد، بلاک داخل این شرط اجرا نخواهد شد. && به زبان خودمان همان همچنینمی‌شود. یعنی هم این شرط و هم آن شرط باید برقرار شود.

استفاده از || 
دو خط موازی ایستاده که در کنار هم قرار بگیرند در جاوا اسکریپت معنای یا می‌دهند. یعنی یا شرط اول یا شرط دوم برقرار بود بلاک کد آن اجرا می‌شود. یعنی فرقی نمی‌کند شرط اول غلط است یا درست ! حتی اگر یکی از موارد نیز درست باشند کد ما اجرا خواهد شد. مثال زیر را ببینید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت چون x با یکی از حالت‌های if ما برابری می‌کند، بلاک کد if ما اجرا خواهد شد!‌

حالا که هم با مقایسه‌گرها آشنا شده‌ایم و هم ساختار شرط‌ و شروط‌گذاری را می‌دانیم یک تمرین جالب‌تر انجام دهیم!
حالا می‌خواهیم یک تمرین ساده دیگر برای تکمیل این جلسه انجام دهیم. 
فرض کنید صاحب یک مغازه سوپرمارکت هستید و می‌خواهید یک سیستم مدیریت مشتریان ایجاد کنید که افرادی که خرید بالای دو هزار تومان انجام دهند یک تخفیف ویژه ۱۰۰ تومانی بگیرند و افرادی که بیشتر از ۲۵۰۰ تومان خرید کنند ۲۰۰ تومان تخفیف بگیرند! 
قبل از شروع بد نیست کمی این موضوع را تحلیل کنیم! برای ایجاد چنین پروژه‌ای به یک متغیر با نام سبد خرید نیاز داریم! یک سری متغیر برای قیمت محصولات مختلف و یک درصد تخفیف مشخص که به کمک آن قیمت نهایی سبد خرید مشتریان ویژه را کاهش دهیم.

برای این کار ابتدا یک متغیر به نام سبد خرید ایجاد می‌کنیم. 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

سپس تعدادی محصول را به صورت دلخواه و با متغیرهای مختلف اضافه می‌کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا فرض می‌کنیم که مشتری ما سه آیتم به سبد خرید خود اضافه کرده باشد. در این صورت قیمت نهایی سبد خرید وی مجموع قیمت محصولات انتخابی است.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا می‌خواهیم به سراغ آموخته‌های جلسه‌ای که گذرانده‌ایم برویم! در مرحله آخر باید چک کنیم که میزان خرید‌های مشتری ما آیا به حد نصاب رسیده است یا خیر! و این تخفیف چقدر خواهد بود!

یک راه همانطور که گفتیم استفاده از چند if پشت سر هم است: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

یک تمرین دیگر نیز با هم مرور می‌کنیم. فرض کنید یک متغیر با نام x داریم! 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

وقتی این فایل را اجرا کنیم هم بلاک اول و هم بلاک دوم اجرا می‌شود! چرا که مرورگر با وجود رسیدن به شرط درست در بلاک اول باز هم به جستجو در ifهای دیگر ادامه می‌دهد و همه آن‌ها را اجرا می‌کند. از آنجا که ما در بلاک اول مقدار متغیر ایکس را تغییر داده‌ایم پس ساختار شرط‌هایمان نیز تغییر کرده است!

حالا همین مثال را با کمک else if اجرا می کنیم: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

اگر این کد را اجرا کنید خواهید دید که تنها یک بار و در بلاک اول کد ما اجرا شد! در واقع  else if  تنها یک بار اجرا می‌شود و مرورگر در صورت پیدا کردن شرایط درست دیگر سراغ دیگر شرط و شروط نخواهد رفت!

چاپ این مطلب

  آموزش جاوا اسکریپت - متغیرهای شرطی (بولین)
ارسال کننده: mesterweb - ۹۷/۲/۳۱، ۱۰:۲۸ عصر - انجمن: JavaScript - بدون پاسخ

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

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

بولین‌ها همانند دیگر متغیرهای جاوا اسکریپت قابلیت تغییر دارند. مثلا فرض کنید یک متغیر بولین داریم که در ابتدای کد، مساوی false قرار داده‌ایم. بعدا در صورت نیاز باید مقدار آن را true کنیم. بدین ترتیب از آنجای کد به بعد، متغیر ما مقدار true خواهد داشت.

مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

از اینجا به بعد مقدار متغیر true برابر با booleanVariable خواهد بود.
یکی از کاربردی‌ترین امکانی که بولین‌ها در اختیار ما قرار می‌دهند آن است که وضعیت ما را در حالت‌های تکراری مشخص می‌کنند. یک مثال ابتدایی از این موضوع را با هم مرور می‌کنیم. مثلا فرض کنید ما می‌خواهیم وقتی برای بار اولی که روی یک متغیر کلیک شد، یک اتفاق بیفتد و در دفعات بعدی اتفاق دیگری رخ دهد. یعنی می‌خواهیم کلیک اول را از کلیک‌های دیگر مجزا کنیم. این موضوع را به‌راحتی می‌توانیم به کمک بولین‌ها چک کنیم. چگونه؟

ابتدا یک متغیر به نام clicked می‌سازیم. 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا به کمک دستورات جاوا اسکریپت، ایونت کلیک روی المان دکمه را چک می‌کنیم. (چون ما هنوز با ایونت کلیک و نحوه قرار دادن ایونت روی المان‌ها آشنا نیستیم، با کمک اتریبیوت HTML مخصوص این کار یعنی onclick این کار را می‌کنیم.)

برای مثال روی یک دکمه به شکل زیر اتریبیوت آن کلیک تعریف می کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این اتریبیوت ما باید یک فانکشن به عنوان مقدار به اتریبیوت اضافه کنیم که در اینجا ما فانکشن clickHandler را بدان وصل کرده‌ایم. فانکشن‌ها یک جلسه کاملا اختصاصی دارند ولی برای آشنایی فعلی شما آن را مختصرا توضیح می‌دهیم. فانکشن یک سری تکه کد است که در صورت نیاز و خواسته ما در کد تکرار می‌شود. فانکشن‌ها عملکرد مخصوص خودشان را دارند و معمولا دارای نام مشخص هستند(مثلا نام فانکشن ما در اینجا clickHandler است). 
البته فانکشن‌های بدون نام هم وجود دارند که در بخش مخصوص به خودشان آن‌ها را به شما آموزش خواهیم داد.

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مثال‌های بسیار دیگری از کاربرد بولین‌ها در جاوا اسکریپت وجود دارند. مثلا شما میتوانید یک متغیر در ابتدای کد تعریف کنید به عنوان userStayLongTime  و مقدار آن را مساوی false قرار دهید. سپس با گذشت زمان مشخصی این متغیر را true کنید و بدین ترتیب متوجه شوید که یوزر زمان زیادی را در صفحه شما گذرانده است. سپس هر جا که خواستید می‌توانید با چک کردن این متغیر متوجه شوید که آیا یوزر مورد نظر شما زمان کافی در سایت گذرانده یا خیر و بر این اساس عملکرد متفاوتی نمایش دهید! استفاده‌های خلاقانه‌تر و جالب‌تری نیز از این موضوع وجود دارند ولی نیازمند یادگیری بخش‌های بیشتری از جاوا اسکریپت هستند!

در جلسات آینده و به مرور با تکمیل شدن دانش شما روش‌های خلاقانه‌تری برای استفاده از بولین‌ها خواهیم آموخت.

انواع دیگر متغیرها:
در کنار این‌ها، دو نوع داده دیگر نیز داریم که احتمالا در حین کد زدن خیلی با آن‌ها مواجه خواهید شد: null و  undefined که در واقع هر کدام یک مقدار مشخص دارند. نال به معنای خالی است و وقتی که مقدار متغیر شما خالی باشد، استفاده می‌شود. undefined به معنای تعریف‌نشده است و وقتی متغیری مقدار نامشخصی داشته یا تعریف نشده باشد، به ما نمایش داده خواهد شد. مثلا وقتی یک متغیر هنوز تعریف نشده باشد و شما آن را در قالب پنجره alert صدا بزنید با ارور مقدار undefined مواجه خواهید شد. این موضوع را حتما به‌عنوان یک تمرین ساده امتحان کنید.

هفتمین جلسه از آموزش جاوا اسکریپت نیز با آموزش متغیرهای بولین به پایان رسید. همانطور که گفتیم، این متغیرها کاربرد بسیار زیادی در دنیای برنامه نویسی دارند؛ ولی برای استفاده کامل از آن‌ها هنوز خیلی چیزها باید یاد بگیرید. پس برای یادگیری عمیق‌ عجله نکنید! هنوز زمان زیادی تا پایان آموزش‌ها باقی است!

چاپ این مطلب

  آموزش جاوا اسکریپت - اعمال ریاضی روی متغیرهای عددی
ارسال کننده: mesterweb - ۹۷/۲/۳۱، ۱۰:۱۴ عصر - انجمن: JavaScript - بدون پاسخ

گاهی می‌خواهیم به‌صورت مساوی یک مقدار را به یک متغیر اضافه کنیم. مثلا می‌خواهیم ۵ تا به یک متغیر اضافه یا کم کنیم! برای آشنایی با نحوه‌ی انجام ریاضیات ساده روی متغیرها در جاوا اسکریپت با ما همراه شوید.

در این جلسه قصد داریم با نحوه‌ی جمع و تفریق و ضرب و تقسیم متغیرها آشنا شویم. این اعمال تنها روی متغیرهای عددی قابل اجرا هستند. همچنین در ادامه با اپراتورهایی مثل += آشنا خواهیم شد.

علامت =
علامت = به معنای دادن یک مقدار به یک متغیر است! نه متغیر بیشتر می‌شود و نه کمتر و همان چیزی است که در آن‌طرف مساوی بدان داده شده است!
مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

جمع دو متغیر
برای جمع دو متغیر، کافی است بین آن‌ها علامت + قرار دهیم. مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

علامت =+
عبارت بالا دقیقا مانند این است که بنویسیم: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت مقدار سمت چپ به اندازه‌ای که در سمت راست نوشته شده است، افزوده می‌شود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در نهایت مقدار X = 15 خواهد بود! یعنی ۱۰ (مقدار اولیه)‌ به علاوه مقداری که بدان اضافه شده است (5).

تفریق دو متغیر:
برای کم کردن دو متغیر، کافی است بین آن‌ها علامت - قرار دهیم. مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

علامت =-
عبارت بالا دقیقا مانند این است که بنویسیم: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت باز هم از مقدار اولیه متغیر، مقداری که در سمت راست آن نوشته شده است، کم می‌شود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت مقدار ایکس برابر با 8 خواهد بود! یعنی همان مقدار اولیه (10) منهای مقداری که در آن‌طرف مساوی قرار داده‌ایم (2).

ضرب دو متغیر
برای ضرب کردن دو متغیر, کافی است بین آن‌ها علامت * قرار دهیم. مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

علامت =* 
عبارت بالا دقیقا مانند این است که بنویسیم: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است!‌ فقط به اندازه‌ای که در سمت راست می‌نویسیم، در مقدار قبلی ضرب می‌شود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مقدار نهایی آن برابر خواهد بود با ۵۰ .

تقسیم دو متغیر: 
برای تقسیم کردن دو متغیر, کافی است بین آن‌ها علامت / قرار دهیم. مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

علامت =/
عبارت بالا دقیقا مانند این است که بنویسیم: 

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است!‌ فقط به اندازه‌ای که می‌گوییم، بر مقدار قبلی آن تقسیم می‌شود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

مقدار نهایی آن برابر خواهد بود با 2.

محاسبه باقی‌مانده تقسیم بین دو متغیر: 
برای محاسبه باقیمانده تقسیم بین دو متغیر کافی است بین آن‌ها علامت ٪ قرار دهیم. مثال:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

علامت %=
این عبارت دقیقا مانند این است که بنویسیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت باز هم مقدار اولیه متغیر سرجایش باقی است!‌ فقط به اندازه‌ای که می‌گوییم، بر مقدار قبلی آن تقسیم می‌شود و باقیمانده این تقسیم نوشته می‌شود. مثلا اگر یک متغیر مثل var X = 10 داشته باشیم، با این کار خواهیم داشت:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

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

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت پرانتز را خالی گذاشته‌ایم پس عدد بدون اعشار رند می‌شود و عدد ما یک عدد صحیح خواهد شد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت عدد ما تا شش رقم رند می‌شود.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در این حالت نیز عدد ما تا یک رقم ممیز اعشار یعنی ۱۷۷.۱ رند شده است.

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا می‌خواهیم این متغیر را با متغیر دیگری به نام y جمع کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا متغیر z حاصل جمع این دو عبارت را نمایش می‌دهد.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

همانطور که می‌بینید حاصل جمع این دو عبارت به جای عدد ۳ عبارت ۱۲ می‌شود. چرا؟ چون یک طرف این جمع استرینگ و متن است و یک طرف عدد و یک عدد و یک استرینگ با هم جمع نمی‌شوند. بلکه در کنار هم قرار می‌گیرند و حاصل آن‌ها به جای جمع شدن، به هم چسبیدن است. راه حل این مشکل تبدیل عبارت y به یک عدد است! اینجا است که متد parseInt()  به کمک شما می‌آيد. برای این کار کافی است عبارت را مطابق مثال بنویسید.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

ولی یک نکته مهم در این قسمت وجود دارد که در کل نوشتن جاوا اسکریپت باید آن را فرا بگیرید. در واقع درست است که ما متغیر y را تغییر داده‌ایم ولی باید مقدار جدیدش را در جایی ذخیره کنیم! چه جایی بهتر از خود y! پس به جای عبارت بالا اینگونه می‌نویسیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

بدین ترتیب مقدار جدید y (‌که همان عددی شدن آن است) مجددا در y ذخیره می‌شود.


متد Number()
این متد همانند متد parseInt() است با این تفاوت که شما هر چیزی را از این طریق می‌توانید به عدد تبدیل کنید! هر چیزی حتی تاریخ!‌ به مثال‌های زیر می‌کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

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

یک برنامه بنویسید که بتواند درصد تخفیف اعمال‌شده روی محصولات یک فروشگاه و قیمت نهایی را محاسبه کند. از آنجا که هنوز نحوه‌ی دریافت متغیرها از طریق فرم در اچ‌تی‌ام‌ال را یاد نگرفته‌ایم ،می‌توانید درصد تخفیف را به‌صورت پیش‌فرض در یک متغیر مثل (var off = 10) ذخیره کنید.

پاسخ تمرین:
در صورتی که خودتان کمی فسفر سوزانده‌اید و می‌خواهید جواب آخر را چک کنید، تصمیم داریم نحوه نوشتن این برنامه بسیار ساده را به شما بگوییم.

مرحله اول: تمامی متغیرهای لازم برای برنامه را در شروع آن تعریف می‌کنیم. مطمئنا یکی از متغیرهای اصلی ما در این بخش، درصد تخفیف است. پس یک متغیر به نام var off = 10 تعریف می‌کنیم.

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا وقت آن رسیده است که قیمت‌ها را محاسبه کنیم. همانطور که گفتیم، ما هنوز نحوه استفاده از فرم‌ها و دریافت داده‌ها از کاربر از این طریق را یاد نگرفته‌ایم. پس نزدیک‌ترین راه‌حل پیش روی ما، استفاده از یک متغیر دیگر به نام price است. این متغیر بعدها باید به‌صورت داینامیک و بر اساس مبلغ واردشده توسط کاربر در فرم ایجاد شود؛ ولی فعلا به یک متغیر ثابت که توسط خودمان تغییر می‌کند رضایت می‌دهیم.
مثلا برای یک محصول دو هزار تومانی یک متغیر عددی تعریف می‌کنیم و مقدار قیمت دلخواه بدان می‌دهیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

حالا برای محاسبه درصد تخفیف، کافی‌ است متغیر off را بر ۱۰۰ تقسیم کنیم تا به‌صورت درصد در بیاید. سپس مقدار نهایی این متغیر را در مقدار قیمت محصول ضرب کنیم. به همین سادگی!
برای تقسیم off بر ۱۰۰ دو راه پیش رو داریم! 

راه حل اول: استفاده از همان متغیر قبلی

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

دقت کنید که چون متغیر off یک‌ بار تعریف شده است، نیازی به تعریف مجدد آن نیست و کافی است در زمانی که بدان نیاز داریم نام آن را بنویسیم و مقدار جدیدی بدان اختصاص دهیم.

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

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در آخرین مرحله بعد از تعریف متغیرهای مربوط به تخفیف، کافی است مقدار قیمت را در مقدار تخفیف ضرب کنیم:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

کلام آخر:
از متغیرهای عددی در کارهای بسیاری می‌توان بهره برد. از محاسبات ریاضی ساده در بخش‌های محاسباتی گرفته تا محاسبات پیچیده در برنامه‌های پیچیده‌تر... ما در دوره فعلی تمرکز خود را روی ساده‌ترین متدها و امکانات متغیرهای عددی قرار داده‌ایم؛ ولی در صورت علاقه می‌توانید نکات پیشرفته‌تر و کامل‌تر از این موضوع را در وب‌سایت w3schools مطالعه کنید.

چاپ این مطلب

  قلعه ای تاریخی و جذاب در پراک
ارسال کننده: prham - ۹۷/۲/۳۱، ۰۳:۴۱ عصر - انجمن: سفرهای خارجی - بدون پاسخ

قلعه پراگ، باشکوه ترین قلعه تاریخی در جهان

دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
 یکی از باشکوه ترین قلعه تاریخی لهستان که در قرن نهم احداث شده است و اقامتگاه اصلی پادشاه رسمی کشور چک می باشد. این قلعه مجموعه ای از کلیساها و کاخ ها و باغ هایی که از دوره های مختلف تاریخی به جا مونده است در واقع شبیه شهری کوچک در دل شهر بزرگ پراگ قرار گرفته است. این قلعه جایگاه رسمی شاهان بوهم، شاهان امپراتوری مقدس روم و رئیس‌جمهور چکسلواکی بود. تاج‌های جواهر بوهمی در اتاقی مخفی در این قلعه نگهداری می‌شوند.این قلعه دارای زیربنایی در حدود ۷۰ هزار متر مربع است و در حدود ۵۷۰ متر طول و به‌طور متوسط حدود ۱۳۰ متر عرض دارد و عنوان بزرگترین قلعه تاریخی را در کتاب گینس به خود اختصاص داده است.
 قلعه پراگ از قرن دوازدهم تا هیجدهم، چهار بار ساختمان‌های مجموعه را از پایین تا بالا بازسازی کردند. در قرن چهاردهم این قلعه به سبک گوتیک توسط چارلز مورد باز سازی قرار گرفت و در این زمان خود چارلز کلیسایی به همین سبک را شروع به ساخت کرد اما ساخت آن شش قرن طول کشید. در ساخت ساختمان‌های قلعهٔ پراگ سبک‌های گوناگون معماری مورد استفاده قرار گرفته‌اند، برای نمونه، کلیسای ویتوس مقدس به سبک معماری گوتیک و کلیسای جورج مقدس به سبک معماری رمانسک ساخته شده‌اند. در سال ١۵۴١ میلادی، بخش‌هایی از قلعه در آتش سوخت و طی حکومت خاندان هابسبورگ، ساختمان‌هایی به سبک رنسانس به این مجموعه اضافه شد. آخرین آسیب‌هایی که به ساختمان‌ها وارد شد، طی جنگ‌های سی‌ساله بود و بعد از آن، هم در زمان ملکه ترزا در نیمه‌ی دوم قرن هیجدهم و در دهه‌ی ١٩٢٠ به دستور رئیس‌جمهور چک سلواکی بازسازی شد. مجموعه‌ی این خرابی‌ها و بازسازی‌ها، این قلعه را تبدیل کرده به چیزی که امروز هست؛ یک مجموعه‌ی جذاب و دیدنی و البته موردعلاقه‌ی گردشگران.
 برای دریافت ویزای شینگن  چک, وقت سفارت چک باید طبق اطلاعات زیر عمل کنید:
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
جزو کشور های شنگن می باشد و جهت ورود به این کشور نیاز به دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
 است. برای دریافت ویزا شنگن حضور شخص متقاضی ویزا در سفارت برای مصاحبه و انگشت نگاری الزامی می باشد.
سفارت چک اکیدا توصیه می‌کند به همراه ایمیل ارسالی خود، کپی پاسپورت، فرم‌های درخواست ویزا یا مدارک دیگری را ارسال نکنید. تمامی مدارک درخواست ویزا باید در روز تعیین شده به سفارت تحویل داده شوند.
همچنین طبق توصیه این سفارت، لازم است حداقل ۶ هفته پیش از سفر خود به این کشور زیبا ، برای دریافت تضمینی دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
اقدام کنید.
منبع: دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


[url=http://sitevisa.com/prague-castle-in-poland/#respond][/url]

چاپ این مطلب