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

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

نام کاربری
  

گذرواژه‌
  





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

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

آمار انجمن
» اعضا: 3,543
» آخرین عضو: makabaka
» موضوعات انجمن: 10,393
» ارسال‌های انجمن: 14,568

آمار کامل

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

آخرین موضوع‌ها
بوم‌گردی؛ سفر به قلب فرهن...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
دیروز، ۰۳:۰۲ عصر
» پاسخ: 0
» بازدید: 37
ویلا در شمال؛ تجربه لوکس ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
دیروز، ۰۲:۵۹ عصر
» پاسخ: 0
» بازدید: 41
کلبه چوبی؛ پناهی گرم در د...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
دیروز، ۰۲:۵۸ عصر
» پاسخ: 0
» بازدید: 33
سفر به ماسال؛ اقامت در وی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲۳، ۰۱:۴۲ عصر
» پاسخ: 0
» بازدید: 86
بهترین ویلاهای بابلسر برا...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲۳، ۰۱:۴۱ عصر
» پاسخ: 0
» بازدید: 72
سوئیت یا ویلا؟ بهترین گزی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۲۳، ۰۱:۴۰ عصر
» پاسخ: 0
» بازدید: 60
آینده‌ای بدون صف؛ وقتی فن...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: marjan1999
۰۴/۸/۲۱، ۰۱:۲۸ عصر
» پاسخ: 0
» بازدید: 87
نقش دستگیره هوشمند در امن...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: marjan1999
۰۴/۸/۲۰، ۰۴:۵۵ عصر
» پاسخ: 0
» بازدید: 67
آموزش طرز تهیه کیک مرغ با...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: navidradi
۰۴/۸/۱۹، ۰۶:۱۲ عصر
» پاسخ: 0
» بازدید: 68
ویلا بابلسر؛ ترکیب دریا، ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۲۵ عصر
» پاسخ: 0
» بازدید: 92
ویلا؛ انتخابی برای سبک زن...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۲۱ عصر
» پاسخ: 0
» بازدید: 74
اجاره ویلا در رشت؛ تجربه ...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۱۶، ۰۲:۱۶ عصر
» پاسخ: 0
» بازدید: 76
هوشمند سازی ساختمان در ته...
انجمن: گفتگوی آزاد
آخرین ارسال توسط: navidradi
۰۴/۸/۱۴، ۱۰:۳۷ صبح
» پاسخ: 1
» بازدید: 975
زندگی محلی را با بوم‌گردی...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۶ عصر
» پاسخ: 0
» بازدید: 86
یک آخر هفته رویایی در ویل...
انجمن: سفرهای داخلی
آخرین ارسال توسط: arvin912
۰۴/۸/۹، ۰۸:۵۵ عصر
» پاسخ: 0
» بازدید: 81

 
  آموزش جاوا اسکریپت - فانکشن
ارسال کننده: 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]

چاپ این مطلب

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

درحالیکه مشتریان به سمت تکنولوژی های جدید هجوم می برند، بانک ها باید پیش بینی کنند که کلاهبرداران نیز بدنبال آنها خواهند آمد. شک نداشته باشید: فیسبوک
 قصد دارد برنامه های شما را جایگزین کند. به عقیده ی این غول تکنولوژی تمام  برنامه ی موبایل که بر روی صفحه ی گوشی هوشمند شما جمع شده اند باید رها شوند
 و توسط چت بات ها جایگزین شوند این گام جدیدی است که فیسبوک به شرکت ها در صنایع مختلف دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
که بدنبال بهبود میزان استفاده ی مشتری هستند ارائه داده. بسیاری
 از شرکت ها در حال پذیرفتن آن هستند. اکنون یشتر از 100000 بات در فیسوک مسنجر وجود دارند که به شرکت ها اجازه می دهند سفارش گیرند و به سوالات مشتریان پاسخ دهند.
 Mastercard و American Express همگی بات های مسنجر راه انداخته اند و بانک آمریکا هم اعلام کرده است که این کار را خواهد کرد. 

چرا چت بات؟ و چرا نگرانی؟
چت بات ها چند مزیت اصلی دارند:
-    آنها یک واسط کاربر دیجیتال ساده و محاوره ای برای تقابلات خدماتی با مشتریان ارائه می دهند
-    آنها هزینه ی انجام این تقابلا ت را در مقایسه با روش های سنتی بطور چشمگیری کاهش می دهند
-    و مهمتر از همه، آنها در آمار اصلی جوانان زیر 33 سال (که بزرگترین جمعیت آمریکا را تشکیل می دهند) پرطرفدار بوده اند
با اینحال، بانک ها باید آماده ی کلاهبردارانی باشند که همزمان با استفاده ی مشتریان از چت بات ها برای انجام کارهای بانکی خدمات شبکه  تلاش های خود را برای بهره برداری از این کانال معطوف میکنند.
کاملا واضح است که چرا بانک ها به چت بات ها علاقمندند. آنها تلاش کرده اند که با  جوان ها مرتبط بمانند. سرویس های پیام رسان و چت بات ها راهی جدید برای دسترسی به این نسل هستند. 
تمام سرویس های اصلی پیام رسان موبایل- WhatsApp، , Facebook Messenger  و Snapchat- مخاطبینی دارند که بوضوح بیشتر از بین جوانان هستند. 
سرویس های پیام رسان ادعای میزان استفاده ی فوق العاده بالای مشتریان را دارند و این امر آنها را به پلتفرم هایی مطلوب برای دسترسی مشاغل به مشتریان تبدیل میکند.
 بر اساس تحقیق 2016  توسط Global Web Index، 57% کاربران WhatsApp و 24% کاربران Snapchat  در طول دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
روز بارها این برنامه ها را باز کردند. برنامه های پیام رسان
 همچنان از طریق اتوماتیک کردن تقابلات با مشتری هزینه ها را کاهش داده اند. 
بر اساس یک تحقیق معیار که در سال 2008 انجام شد، ارتباطات از طریق مرکز تماس، معمولا حدود 4 دلار در هر تماس هزینه دارد، اما امروز از طریق کانال های سلف سرویس آنلاین
 این هزینه کمتر از 20 سنت است.



خطر در کجا قرار دارد 
حرکت ارتباطات از برنامه های موبایل و مراکز تماس به خدمات پیام رسان و چت بات ها به معنی تغییر مسیر خطرات به این کانال های بسیار جدید هستند. بر اساس یک تحقیق
 انجام شده توسط Pindrop  ،با افزایش 113 درصدی کلاهبرداری های مراکز تماس در دنیا از سالهای 2016 تا 2017، مراکز تماس در سالهای اخیر مورد هجوم طوفانی از کلاهبرداری
 مهندسی اجتماعی قرار گرفته اند. این حقه های مهندسی اجتماعی به این صورت انجام میگیرد پسیو شبکه که کلاهبرداران با نمایندگان خدمات مشتریان تماس می گیرند وآنها را متقاعد می کنند 
که مشتریان واقعی هستند و از آنها میخواهند که تراکنش های جعلی را انجام دهند و یا اطلاعات محرمانه به آنها بدهند. این نقشه ها در سال های اخیر که بانک ها امنیت در کانال های
 دیگر را از طریق اقداماتی مثل اجازه ورود دو فاکتوری و کارت های EMV بالا برده اند، شیوع بیشتری پیدا کرده اند.همچنین طبیعی خواهد بود که با انتقال بسیاری از ارتباطات خدمات مشتری
 به چت بات ها، بسیاری از این حقه های مهندسی اجتماعی به این چت بات ها منتقل شوند. در عوض گول زدن یک مسئول دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
خدمات مشتری، کلاهبرداران میتوانند از اطلاعات ورود یا اطلاعات
 شخصی مثل شماره امنیت ملی استفاده کند که از طریق phishing  و روش های دیگر بدست آمده تا کلاهبردار وانمود کند مشتری واقعی است . این کار میتواند به آنها اجازه دهد که تراکنش
 های جعلی انجام دهند یا از چت بات ها برای جمع آوری اطلاعات بیشتر درمورد مشتریان واقعی بدست آورند تا بتوانند مرتکب سرقت هویت شوند. 

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

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

چاپ این مطلب

  سه ویژگی VoIP برای خدمات مشتریان
ارسال کننده: arenanoc - ۹۷/۲/۳۱، ۱۰:۳۰ صبح - انجمن: کامپیوتر و اینترنت - پاسخ (2)

انتظار می رود که تا سال 2021، بازار خدمات VoIP تا140 میلیارد دلار افزایش یابد - از 83 میلیارد دلار در سال 2015-. VoIP تلفن همراه و تکیه کمتر بر خطوط ثابت سنتی تنها دو عامل این رشد نجومی هستند. در حال حاضر، شرکت های بیشتری در حال سرمایه گذاری در VoIP برای بهینه سازی فرآیندهای خدمات مشتری خود هستند. این فناوری به کسب و کارها امکان پاسخگویی به تماسهای بیشتری را میدهد، با مشتریان 24 ساعته در روز ارتباط برقرار میکند و در هزینه صرفه جویی می کند.

1. VoIP به شرکت ها امکان پاسخگویی به تماس های بیشتری را می دهد.
با VoIP هیچ تماسی بی پاسخ نمی ماند. این سیستم ها دارای تکنولوژی انتقال تماس هستند که هر تماس را به شخص مربوطه انتقال می دهند. VoIP به شرکت ها این امکان را می دهد تا مشکلات مربوط به خدمات مشتریان را در حین وقوع حل و فصل کنند. 
سازمان می تواند اشتباهات را کاهش داده و از مشتریان ناراضی دلجویی کنند.
شرکت ها حتی می توانند سرویس های خدمات مشتری را به یک شخص ثالث در یک منطقه زمانی متفاوت انتقال دهند. در نتیجه، مصرف کنندگان میتوانند در هر زمان روز یا شب با یک حرفه ای خدمات به مشتری صحبت کنند.
VoIP  بهره وری خدمات مشتری را افزایش می دهد.  چرا که زمان کمتری در پست صوتی و تماس مجدد با مشتریان خدمات شبکه هدر می شود و کارکنان قادر به پاسخگویی بیشتر به تماس ها هستند. شرکت هایی که دارای یک راه حل ارتباطی یکپارچه اند 191 ساعت در روز و 49660 ساعت در سال، با توجه به یک پژوه، را ذخیره می کنند.

2. VoIP  به شرکت ها اجازه می دهد با مشتریان تعامل داشته باشند.
خدمات مشتری برای هر کسب و کار بسیار مهم است.  تا سال 2020، خدمات مشتری از قیمت و محصول به عنوان یک عامل در ایجاد تمایز در برندها پیشی خواهد گرفت. علاوه بر این، 86 درصد از مصرف کنندگان برای تجربه بهتر مشتری هزینه بیشتری خواهند کرد.
VoIP  به کسب و کارهایی که با خدمات مشتریان در حال دست و پنجه نرم کردن هستند، کمک می کند. این فن آوری با سیستم عامل های نرم افزاری خدمات مشتری هماهنگ شده است تا تجربه مشتری را افزایش دهد. وقتی یک مصرف کننده با یک شرکت ارتباط برقرار می کند، کارکنان می توانند اطلاعات خود را بالا ببرند و تعاملات گذشته را بررسی کنند. کارمندان می توانند این اطلاعات را در زمان واقعی به روز کنند.
بر خلاف ایستگاههای رادیویی سنتی، کارکنان اطلاعات بیشتری در مورد مشتریان در دست دارند.  در نتیجه، کارکنان می توانند مشکلات پشتیبانی شبکه را  در زمان سریعتری حل و فصل کنند و افزایش از نارضایتی مشتریان به اختلافات عمده جلوگیری کنند. VoIP  اجازه می دهد تا کسب و کارها با مشتریان خود در 24 ساعت شبانه روز در ارتباط باشند. این فقط تماس های صوتی نیست.  با برخی از خدمات  VoIP، کسب و کار می تواند با مشتریان از طریق اس ام اس و سیستم های رسانه های اجتماعی مانند WhatsApp و فیس بوک مسنجر ارتباط برقرار کند.

3. VoIP  موجب صرفه جویی شرکت ها در هزینه ی مدیریت خدمات مشتری میشود.
VoIP  همچنین باعث صرفه جویی در هزینه های متعدد می شود. کارکنان خدمات مشتری می توانند در خانه کار کنند، چیزی که پسیو شبکه می تواند باعث هزاران دلار صرفه جویی در سال شود.  کسب و کارهایی که به کارکنان امکان ارتباط از راه دور را می دهد، اهداف  خدمات به مشتریان خود را براورده کرده و در هزینه ها را کاهش می دهد - لوازم اداری، آب و برق، هزینه کارکنان، و غیره. شرکت فن آوری کامپیوتر دل از طریق ایجاد امکان برای کارکنانش برای ارتباط از راه دور، 39.5 میلیون دلار در هزینه صرفه جویی کرد و انتشار انرژی را کاهش داد.  
کسب و کارها همچنین در صورتحساب گران قیمت تلفن می توانند صرفه جویی کنند. به جای برقراری ارتباط با مشتریان از طریق خطوط سنتی، شرکت ها می توانند از خدمات VoIP برای حل مشکلات و شکایات استفاده کنند. ارسال اطلاعات صوتی از طریق اینترنت بسیار ارزان تر از برقراری تماس از یک تلفن ثابت است.  با توجه به یک مطالعه، میانگین هزینه های ماهانه VoIP فقط 25 دلار است، در مقایسه با 50 دلار برای خطوط تلفن ثابت. علاوه بر این، برخی از کسب و کارها پس از انتقال از خطوط تلفن ثابت به VoIP می توانند تا 75 درصد صرفه جویی کنند.
VoIP  ابزار ارتباطی قدرتمندی برای خدمات مشتری است. این تکنولوژی به کسب و کارها اجازه می دهد تا به تماس های بیشتری پاسخ دهند، با مشتریان بیشتری ارتباط برقرار کنند و پول بیشتری را ذخیره کنند. انتظار می رود شرکت های بیشتری برای سرمایه گذاری در VoIP و بهبود  فرایندهای خدمات مشتری خود تا پایان سال 2017 اقدام کنند.
در یک تحقیق انجام شده در مورد کارآیی سلوشن های امنیتی، سه-چهارم شرکت کنندگان بی اعتمادی شگفت انگیزی نسبت به این ابزار نشان دادند. 
براساس نظرسنجی Tripwire از کاربران حرفه ای ابزار امنیت اطلاعات، 75% شرکت کنندگان باوردارند که خرید تمام ابزار امنیتی موجود در بازار به آنها این امکان را نمی دهد تا بطور کامل از سازمان خود محافظت کنند. 
این تحقیق همچنان نشان داد که تقریبا نیمی از کاربران (46%) ابزار امنیتی خریداری کرده اند که قادر به پاسخگویی نیازهای سازمانی آنها نبوده است. 
به گفته ی تیم ارلین، نایب رییس مدیریت و استراتژی محصولات Tripwire :" ابزار و تکنولوژی های خدمات شبکه جدید هرروزه به بازار امنیت اطلاعات وارد میشوند، اما واضح است که بسیاری از انها نیازهای بازار را برآورده نمی کنند. تمرکز بر روی مسایل پایه ای که کارایی قابل اثباتی دارند شاید تغییر بزرگی ایجاد نکند اما کار عاقلانه ای بنظر میرسد." او افزود: " بیشترین موفقیت ها برای بازار امنیتی از راه تامین کنترل های زیرساختی بدست می آید. اصول یافتن و برطرف کردن نقاط آسیب پذیر، تنظیمات امن سیستم و بررسی سیستم ها برای یافتن تغییرات، تاثیر  بسزایی در شکل دادن چارچوب امنیتی قوی دارند."

این یافته ها همچنان نشان می دهند که هرچه سازمان ها بزرگتر هستند، کارکنان آنها اعتماد کمتری به ابزار امنیت مجازی که بطور کامل از سازمان آنها محافظت میکنند دارند. در شرکت هایی که کمتر از 1000 کارمند دارند، تنها 32% افراد احساس می کنند که با خرید تمام ابزار امنیتی موجود از محافظت کامل برخوردار می شوند. این درصد در شرکت هایی با 1000 تا 5000 کارمند تا حدود نصف (19 %)،  و حتی در شرکت هایی با بیشتر از 5000 کارمند تا 15 % کاهش می یابد. 
حوادث اخیر نشان داده اند که کنترل های پایه ای قادر هستند حتی بدون کمک بعضی از ابزار جدید موجود در بازار بطور موفق از سازمان ها محافظت کنند. مقیاس بالای حملاتی چون Heartbleed، WannaCry و اکنون Petya بیشتر به استفاده ی شرکت ها از سیستم های قدیمی و رفع اشکال نشده مرتبط دانسته میشود تا نبود ابزار دفاعی. 
این شرکت در یافته های خود بیان کرد:" این حملات بزرگ نشان داده اند که اهمیت دادن به بهداشت امنیتی پایه و حصول اطمینان از کنترل های زیرساختی میتواند حملات را با موفقیت خنثی سازد."

چاپ این مطلب

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

-انواع آبنما :

آبنمای صخره ایی  -  آبنمای دیواری – آبنمای موزیکال  -  آبنمای مدرن – آبنمای کلاسیک – آبنمای شیشه ایی – آبنمای باغی
دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.

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

چاپ این مطلب

  قاب محافظ Honor 9 Lite برند X-Level
ارسال کننده: mr.mousa - ۹۷/۲/۳۰، ۰۹:۰۷ عصر - انجمن: بازارچه - بدون پاسخ

قاب محافظ گوشی Honor 9 Lite برند X-Level سری Guardian با کیفیت بسیار بالا و جنس نرم طراحی زیبا و ظریف دارد که علاوه بر اینکه از گوشی در برابر ضربه به خوبی محافظت میکند ابعاد گوشی را بزرگ نمی‌کند و از زیبایی آن کاسته نمی‌شود.

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

قاب محافظ هواوی Huawei Honor 9 Lite فوق از برند معتبر و شناخته شده X-Level هست که کیفیت آن بسیار شناخته شده است. به دلیل طراحی دقیق و حرفه ای جای پورت, سنسور و دوربین به خوبی برش خورده است و هیچ گونه مزاحمتی برای استفاده از آنها وجود ندارد. اطراف گوشی را به خوبی پوشش می‌دهد و محافظت 360 درجه دارد.



برای محافظت بیشتر از لنز دوربین اطراف آن کمی برجسته تر طراحی شده است. قاب محافظ Honor 9 Lite برند X-Level در برابر اثر انگشت مقاوم است و لکه آب روی آن جذب نمی‌شود.

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



[تصویر:  honor9-2.jpeg]


هوآوی گوشی Honor 9 را در ماه ژوئن 2017 رسما رونمایی کرد. این کمپانی چینی امروز یک نسخه سطح پایین‌تر هم از آن معرفی کرد که Honor 9 Lite نام‌گذاری شده است و البته به نام Honor 9 Youth Edition هم آن را می‌شناسیم. همان‌طور که احتمالا مطلع هستید، Honor 9 با نسبت نمایش 16:9 و دوربین دوگانه اصلی معرفی شد و Honor 9 Lite در مقایسه با آن از نسبت تصویر 18:9 بهره می‌برد و به دوربین سلفی با لنز دوگانه مجهز شده است. دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.


گوشی تازه Honor 9 Lite در ابعاد 151 × 71.9 × 7.6 میلی‌متر ساخته شده است و 149 گرم وزن دارد. روکش محافظ شیشه‌ای 2.5D روی هر دو پنل جلو و پشتی آن را پوشانده است و در رنگ‌های سرمه‌ای، طوسی، مشکی و سفید مرواریدی عرضه می‌شود.
این گوشی صفحه نمایش 5.65 اینچی از نوع IPS LCD فول اچ دی پلاس با وضوح تصویر 2160 در 1080 دارد و از نسبت تصویر مدرن 18:9 پشتیبانی می‌کند. نسخه اصلی که همان Honor 9 است، در مقایسه با این نسخه تازه در ابعاد 143.3 × 70.9 × 7.5 میلی متر ساخته شده است و صفحه نمایش 5.15 اینچی فول اچ دی دارد.

چاپ این مطلب