i
در حال برنامه نویسی و آماده سازی نسخه جدید «وبگو» هستیم، در این نسخه قابلیت ها و ظاهر سایت به کلی متفاوت و کاملتر خواهد بود، این فرآیند زمانبر و از مدتی پیش شروع شده و همچنان ادامه دارد، روند پیشرفت پروژه در این قسمت به صورت درصدی مشخص است و به تناوب به روزرسانی می شود.
آگهی
article

عملگرها (Operators) در جاوا اسکریپت (JavaScript)

javascript-operators

پیش از این با زبان جاوا اسکریپت (JavaScript) و کارکردهای آن در صفحات وب تا حدودی آشنا شدیم، گفتیم که این زبان تنها در مرورگر کاربران تفسیر و اجرا می شود (سمت کاربر یا Client-side) و به نوعی در وب محدود به آن است، همچنین مفهوم، نحوه تعریف و استفاده از متغیرها را شناختیم و با مثال هایی از کاربرد آنها تمرین کردیم، اکنون و در این مطلب می خواهیم کمی بیشتر وارد دنیای شیرین و بعضا کمی پیچیده کدنویسی با جاوا اسکریپت شویم و عملگرهای (Operators) محاسبه (Arithmetic)، مقایسه (Comparison) و منطق (Logic) را که جزء همیشگی زبان های برنامه نویسی هستند با هم بررسی کنیم، عملگرهای محاسبه، مقایسه و منطق ابزارهای ضروری جهت کدنویسی برنامه ها هستند، لذا درک صحیح و تسلط بر این مباحث در طی ادامه مسیر آموزش جاوا اسکریپت اهمیت زیادی دارد.

محاسبه، مقایسه و منطق در یک نگاه


شاید در نگاه نخست، عناوین در زبان های برنامه نویسی کمی ترسناک و گیج کننده به نظر برسند و این امری طبیعی در روند یادگیری است، اما همانطور که قبلا گفتیم به طور کلی شیوه نگارش هر زبان برنامه نویسی (Syntax) چیزی نیست جزء مجموعه ای از قوانین تعریف شده توسط انسان برای القای تفکر خود به سیستم در چارچوبی مشخص، یعنی آنچه را که ما به عنوان ایده ذهنی به آن می اندیشیم و هدف نهایی از کدنویسی و طراحی یک برنامه نرم افزاری است را باید با آن قوانین و در بستر قواعد آن زبان برای سیستم ترجمه کنیم و به این ترتیب به مفسر زبان می گوییم که چه وظیفه ای دارد و کجا، کی، چگونه باید رفتار کند و چه خروجی به کاربر بدهد، قاعدتا برای اینکه مفسر و به اصطلاح موتور یک زبان برنامه نویسی چنین قابلیت هایی داشته باشد باید توانایی انجام محاسبات ریاضی، مقایسه مقادیر مختلف با هم و در کل قدرت استدلال داشته باشد، به طور مثال فرض کنیم می خواهیم بین مشتریان یک فروشگاه آنلاین قرعه کشی دوره ای برگزار کنیم و به ازای هر 10,000 تومان خرید 1 امتیاز و به عبارتی یک شانس به آنها اختصاص دهیم، حال اگر بخواهیم در پنل کاربری که به میزان 200,000 تومان فاکتور خرید دارد امتیاز او را محاسبه کرده و نمایش دهیم، باید به چه صورت عمل کنیم؟ همانطور که می دانیم سیستم به زبان ما سخن نمی گوید بلکه باید کدهایی در بستر قواعد نگارشی (Syntax) آن تعریف کنیم تا قابلیت محاسبه، مقایسه و استدلال را داشته باشد، در جاوا اسکریپت بستر را مفسر یا موتور این زبان تعیین می کند و در وب کدهای جاوا اسکریپت توسط مفسری که در مرورگرها وجود دارد تبدیل به خروجی مورد نظر ما می شوند، لذا باید کدهایی بنویسیم که برای مفسر مرورگر قابل فهم و پردازش باشند.
<script type="text/javascript">
var bill = 200000;
var per = 10000;
var point = (bill / per);

if(point >= 1){
    alert('امتیاز شما در قرعی کشی فروشگاه: ' + point);
} else{
    alert('هنوز هیچ امتیازی کسب نکرده اید!');
}
</script>
در این نمونه کد عبارت if و else دستورات شرطی، علامت / عملگر محاسباتی تقسیم، علامت + عملگر محاسباتی جمع (که برای جمع رشته و عدد به صورت ترکیبی استفاده شده است)، علامت =< عملگر مقایسه ای بزرگتر مساوی و نتیجه مقایسه معمولا به صورت درست (true) یا نادرست (false) است که این فرآیند در کل منطق یا استدلال تعبیر می شود، خروجی مثال بالا به صورت زیر خواهد بود.
امتیاز شما در قرعی کشی فروشگاه: 20
در خصوص دستورات شرطی در آموزش های بعدی به صورت جداگانه خواهیم گفت اما در ادامه ی این مطلب به بررسی عملگرهای محاسبه، مقایسه و منطق خواهیم پرداخت.

عملگرهای محاسبه (Arithmetic Operators) در جاوا اسکریپت


مانند دیگر زبان های برنامه نویسی، جاوا اسکریپت نیز از محاسبات ریاضی (جمع، تفریق، ضرب و تقسیم) در مفسر خود استفاده می کند، انجام محاسبات معمولا در سورس کد برنامه های کاربردی تحت وب به تعداد زیاد تکرار می شوند لذا همان طور که اشاره شد درک صحیح این مبحث در طی فرآیند آموزش جاوا اسکریپت اهمیت زیادی دارد.
محاسبات در زبان های برنامه نویسی با علائمی تحت عنوان عملگر محاسبه (Arithmetic Operator) صورت می گیرد که عملگرهای ریاضی در جاوا اسکریپت نیز شامل موارد زیر است:
- عملگر جمع (+): از این عملگر برای جمع دو مقدار عددی (Int)، رشته ای (String) یا ترکیب این دو استفاده می شود، مثال (نتیجه در حالت اول برابر 140 و در حالت دوم برابر با عبارت JavaScript خواهد بود):
<script type="text/javascript">
var count_1 = 100;
var count_2 = 40;
var count_add = count_1 + count_2;
alert(count_add);
</script>

<script type="text/javascript">
var str_1 = 'Java';
var str_2 = 'Script';
var str_all = str_1 + str_2;
alert(str_all);
</script>
در برخی زبان های برنامه نویسی برای جمع مقادیر رشته ای با هم یا ترکیب مقادیر رشته ای با عدد از عملگر خاصی استفاده می شود، به طور مثال در PHP از عملگر . (نقطه) بدین منظور استفاده می کنیم، اما در جاوا اسکریپت عملگر + کارکردی دوگانه و ترکیبی دارد یعنی هم برای محاسبات ریاضی و هم جمع مقادیر رشته ای و عددی به کار می رود.
- عملگر تفریق (-): از این عملگر صرفا برای کسر دو مقدار عددی (Int) از هم استفاده می شود، مثال (نتیجه برابر 60):
<script type="text/javascript">
var count_1 = 100;
var count_2 = 40;
var count_sub = count_1 - count_2;
alert(count_sub);
</script>
- عملگر ضرب (*): این عملگر نیز برای بدست آوردن حاصل ضرب دو مقدار عددی (Int) کاربرد دارد، مثال (نتیجه برابر 4000):
<script type="text/javascript">
var count_1 = 100;
var count_2 = 40;
var count_multi = count_1 * count_2;
alert(count_multi);
</script>
- عملگر تقسیم (/): این عملگر نیز برای بدست آوردن حاصل تقسیم یک عدد بر عدد دیگر مورد استفاده قرار می گیرد، مثال (نتیجه برابر 2.5):
<script type="text/javascript">
var count_1 = 100;
var count_2 = 40;
var count_div = count_1 / count_2;
alert(count_div);
</script>
- عملگر باقیمانده بخش پذیری (%): این عملگر باقیمانده بخش پذیری را برمی گرداند، به طور مثال باقیمانده بخش پذیری 12 بر 5 عدد 2 خواهد بود (2 5 تایی در 12 قابل گنجاندن است و باقیمانده مقدار 2 خواهد بود!):
<script type="text/javascript">
var count_1 = 12;
var count_2 = 5;
var count_remainder = count_1 % count_2;
alert(count_remainder);
</script>
- عملگر به توان رساندن (**): این عملگر یک مقدار عددی را به توان مقادیر در نظر گرفته شده می رساند، مثال (نتیجه برابر 125):
<script type="text/javascript">
var count = 5;
var exponentiation = 3;
var count_exponentiation = count ** exponentiation;
alert(count_exponentiation);
</script>
نکته: عملگر به توان رساندن در حال حاضر در مرحله آزمایشی قرار دارد و ممکن است در تمام مرورگرها به درستی پشتیبانی نشود.

عملگر افزایش و کاهش (Increment/Decrement Operators) در جاوا اسکریپت


معمولا در هنگام کدنویسی برنامه ها مواردی پیش می آید که نیاز به افزایش یا کاهش مقدار یک متغیر به میزان یک واحد است، اگرچه در حالت عادی می توانیم این کار را با عملگر جمع یا تفریق انجام دهیم اما برنامه نویسان همیشه به دنبال ساده ترین و در عین حال سریعترین روش ها هستند! از این رو به جهت پرکاربرد بودن این دو عملیات در اغلب زبان های برنامه نویسی عملگرهای جداگانه بدین منظور در نظر گرفته شده است که JavaScript نیز از این قاعده مستثنا نیست، بر این اساس دو علمگر ++ برای افزایش به میزان یک واحد و عملگر -- جهت کاهش به میزان یک واحد برای این هدف استفاده می شوند.
- عملگر افزایش (++): این عملگر یک مقدار عددی را یک واحد افزایش می دهد، مثال (نتیجه برابر 2):
<script type="text/javascript">
var count = 1;
var count_increment = count++;
alert(count_increment);
</script>
- عملگر کاهش (--): این عملگر یک مقدار عددی را یک واحد کاهش می دهد، مثال (نتیجه برابر 1):
<script type="text/javascript">
var count = 2;
var count_decrement = count--;
alert(count_decrement);
</script>
دقت کنیم محل قرارگیری علامت ++ و -- در قبل یا بعد از متغیر دارای اهمیت است، اگر علامت قبل از متغیر قرار گیرد، ابتدا مقدار یک واحد افزایش یا کاهش می یابد و سپس مقادیر جدید به اصطلاح برگردانده می شود که به آن Pre Increment/Decrement گفته می شود (Pre به معنی پیش، Increment افزایش و Decrement کاهش)، اما اگر علامت بعد از متغیر قرار گیرد، ابتدا مقادیر برگردانده شده و سپس مقدار یک واحد افزایش یا کاهش می یابد که به آن Post Increment/Decrement گفته می شود (Post به معنی ارسال یا در اصطلاح برنامه نویسی برگرداندن)، مثال:
<script type="text/javascript">
var count = 1;
alert(count++);
</script>
در صورت اجرای کد بالا مقدار 1 به صورت پیام نمایش داده خواهد شد، اما اگر کد را به صورت زیر ویرایش کنیم مقدار 2 به خروجی ارسال می شود.
<script type="text/javascript">
var count = 1;
alert(++count);
</script>
با توجه به اینکه علامت ++ قبل از متغیر قرار گرفته است، ابتدا مقدار متغیر افزایش و سپس نتیجه برگردانده می شود.
برای درک بهتر عملگرهای محاسبه در جاوا اسکریپت مثال کلی به همراه پیش نمایش آنلاین آن را با هم بررسی می کنیم:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | عملگرهای محاسبه در جاوا اسکریپت</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    text-align:justify;
    font-size:12px;
    direction:rtl;
}
.ltr{
    direction:ltr;
}
</style>
<script type="text/javascript">
var x = 50;
var y = 20;
var newline = "<br>";

document.write('<div class="ltr">var x = ' + x + ';' + newline + 'var y = ' + y + ';' + '</div>');
document.write(newline);

var addition = x + y;
var subtraction = x - y;
var multiplication = x * y;
var division = x / y;
var remainder = x % y;
var exponentiation = x ** 2;
var increment = ++x;
var decrement = --y;

document.write("عملگر جمع: ");
document.write(newline);
document.write('<div class="ltr">x + y</div>');
document.write('<div class="ltr">' + addition + '</div>');
document.write(newline);

document.write("عملگر تفریق: ");
document.write(newline);
document.write('<div class="ltr">x - y</div>');
document.write('<div class="ltr">' + subtraction + '</div>');
document.write(newline);

document.write("عملگر ضرب: ");
document.write(newline);
document.write('<div class="ltr">x * y</div>');
document.write('<div class="ltr">' + multiplication + '</div>');
document.write(newline);

document.write("عملگر تقسیم: ");
document.write(newline);
document.write('<div class="ltr">x / y</div>');
document.write('<div class="ltr">' + division + '</div>');
document.write(newline);

document.write("عملگر باقیمانده بخش پذیری: ");
document.write(newline);
document.write('<div class="ltr">x % y</div>');
document.write('<div class="ltr">' + remainder + '</div>');
document.write(newline);

document.write("عملگر بتوان رساندن: ");
document.write(newline);
document.write('<div class="ltr">x ** 2</div>');
document.write('<div class="ltr">' + exponentiation + '</div>');

document.write("عملگر افزایش: ");
document.write(newline);
document.write('<div class="ltr">++x</div>');
document.write('<div class="ltr">' + increment + '</div>');
document.write(newline);

document.write("عملگر کاهش: ");
document.write(newline);
document.write('<div class="ltr">--y</div>');
document.write('<div class="ltr">' + decrement + '</div>');
document.write(newline);
</script>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیر فعال است!
</noscript>
<hr>
 جاوا اسکریپت تقریبا از تمام عملیات های محاسباتی پرکاربرد پشتیبانی می کند.
</body>
</html>
پیش نمایش
متغیرهای تعریف شده و محاسبات صورت گرفته در کدهای بالا فرضی و جهت آشنایی بیشتر استفاده شده اند، قاعدتا در کدنویسی برنامه ها تعریف و استفاده از متغیرها و انجام محاسبات بستگی به نیاز و هدف برنامه دارد.

عملگرهای اختصاص دهنده (Assignment Operators) در جاوا اسکریپت


در مباحث پیشین گفتیم که برای اختصاص یک مقدار به متغیر از علامت = در JavaScript استفاده می شود، علامت مساوی را در اصطلاح Assignment Operator یا علامت اختصاص دهنده می گویند، در ادامه خواهیم دید که می توانیم عملگرهای محاسبه و مساوی را با هم ترکیب نموده و عمل محاسبه و اختصاص را به صورت مختصر نویسی انجام دهیم، شیوه مختصرنویسی جهت خواناتر شدن سورس ها و پرهیز از نوشتن کدهای اضافه در برنامه نویسی مورد نیاز است.
علامت =+ معادل عملگر + (جمع) و عملگر = (اختصاص) است، با ترکیب این دو علامت می توانیم ابتدا متغیر را با مقادیر مورد نظر جمع کرده و سپس مقدار جدید را به آن اختصاص دهیم، مثال:
//شیوه عادی
count = count + 5;
//شیوه مختصرنویسی
count += 5;
در صورتی که با دستور alert از متغیر count خروجی بگیریم، با فرض اینکه مقدار اولیه آن برابر با 1 باشد، پس از اعمال عملگر ترکیبی =+ مقدار نهایی برابر با 6 خواهد شد، یادآور می شویم که در نتیجه هیچ تفاوتی بین دو شیوه وجود ندارد، صرفا به جهت خوانا و مختصرنویسی کدها است که استفاده از شیوه ترکیبی در موارد نیاز توصیه می شود.
نکته: علامت + و سایر عملگرهای محاسباتی در شیوه مختصرنویسی باید الزاما قبل از علامت = قرار گیرند، در غیر این صورت عملگر ترکیبی به صورت مورد نظر نتیجه نخواهد داد.
علامت =- معادل عملگر - (تفریق) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
count = count - 5;
//شیوه مختصرنویسی
count -= 5;
علامت =* معادل عملگر * (ضرب) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
count = count * 5;
//شیوه مختصرنویسی
count *= 5;
علامت =/ معادل عملگر / (تقسیم) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
count = count / 5;
//شیوه مختصرنویسی
count /= 5;
علامت =% معادل عملگر % (باقیمانده بخش پذیری) و عملگر = (اختصاص) است، مثال:
//شیوه عادی
count = count % 5;
//شیوه مختصرنویسی
count %= 5;
نکته: در جاوا اسکریپت برای مقداردهی به متغیرهای رشته ای نیز از علامت ترکیبی =+ (Concatenation Assignment) استفاده می شود، JavaScript بر خلاف PHP برای رشته متنی و عدد دو علامت ترکیبی مجزا ندارد (در PHP از علامت =. برای رشته استفاده می کنیم اما در JavaScript علامت =+ هم برای متغیرهای عددی و هم رشته ای به کار می رود)، مثال:
//شیوه عادی
count = count + 'String';
//شیوه مختصرنویسی
count += 'String';

عملگرهای مقایسه (Comparisons Operators) در جاوا اسکریپت


عملگرهای مقایسه (Comparisons Operators) شرایطی را مهیا می کنند که به کمک آنها می توانیم دو طرف یک رابطه را باهم مقایسه کنیم، به طور مثال متغیری فرضی با نام point با مقدار اولیه 12 تعریف کرده ایم.
var point = 12;
حال می خواهیم مقایسه کنیم آیا متغیر point مساوی 12 است؟ برای مقایسه برابری دو طرف در حالت معمول از علامت == استفاده می کنیم.
(point == 12)
آیا متغیر point مساوی 13 نیست؟ برای مقایسه برابر نبودن دو طرف از علامت =! استفاده می کنیم (دقت کنیم کاراکتر ! باید در سمت چپ باشد).
(point != 13)
مقایسه بالا حالت معمول و عمومی است اما در برنامه نویسی گاهی نیاز داریم که دقیقا مساوی بودن یا نبودن دو طرف رابطه را از هر لحاظ بررسی کنیم (مقایسه محض یا Strict که شامل نوع و مقدار می شود)، بدین منظور به جای علامت == از === و به جای علامت =! از ==! استفاده می کنیم (دقت کنیم کاراکتر ! باید در سمت چپ باشد).
(point === 12)
بر اساس مقایسه === عبارت بالا درست (true) خواهد بود ولی مقایسه به صورت زیر نتیجه ی غلط (false) خواهد داشت چرا که مقدار 12 را به صورت عددی (Int) تعریف کرده ایم نه به صورت داده رشته ای (String) لذا نوع داده در مقایسه همسان نیست (Int و String در برنامه نویسی دو نوع متفاوت هستند).
(point === "12")
که این مقایسه به دلیل اینکه 12 در متغیر point مقدار عددی و در اینجا مقدار رشته ای است صحیح نخواهد بود (گفتیم که در جاوا اسکریپت هرگاه مقادیر داخل "" یا '' باشد از نوع رشته ای است)، مثال برای حالت نامساوی بودن محض:
(point !== 12)
به همین ترتیب برای بررسی کوچکتر بودن علامت > کاربرد دارد.
(point < 12)
معنی مقایسه بالا یعنی متغیر point کوچکتر از 12 باشد و برای بررسی بزرگتر بودن از علامت < استفاده می کنیم.
(point > 12)
برای مقایسه کوچکتر یا مساوی بودن علامت => کاربرد دارد (دقت کنیم کاراکتر > باید در سمت چپ باشد).
(point <= 12)
و برای مقایسه بزرگتر یا مساوی بودن از علامت =< استفاده می کنیم.
(point >= 12)
نکته: در آموزش های پیش رو خواهیم دید که عملگرهای مقایسه در کنار دستورات شرطی کامل می شوند و به خودی خود کاربرد خاصی ندارند، مثال:
<script type="text/javascript">
var point = 15;

if(point >= 15){
    alert(1);
} else{
    alert(0);
}
</script>
با توجه به مقایسه بالا و دستور شرطی if و else مقدار 1 به صورت پیام نمایش داده خواهد شد.

عملگرهای منطقی (Logical Operators) در جاوا اسکریپت


عملگرهای منطقی (Logical Operators) در جاوا اسکریپت مانند اغلب زبان های برنامه نویسی نقش مکمل را برای عملگرهای مقایسه ای دارند و نتیجه یک رابطه را به صورت true یا false برمی گردانند، بر همین اساس در حالت true نیازی به استفاده از علامت خاصی در Syntax نیست اما برای حالت false از علامت ! (نباشد) در ابتدای مقایسه استفاده می کنیم، برای مقایسه چندگانه نیز علامت && (و) و علامت || (یا) کاربرد دارند، مثال های زیر به درک موضوع کمک خواهند کرد.
(point > 12)
عبارت بالا یعنی اگر متغیر point بزرگتر از 12 باشد رابطه برقرار و مقدار true برگردانده می شود، در این حالت نیازی به استفاده از علامت خاصی نیست، در واقع عملگر منطقی خاصی در این شکل مقایسه استفاده نمی شود!
!(point > 12)
عبارت بالا یعنی اگر متغیر point بزرگتر از 12 نباشد رابطه برقرار و مقدار true برگردانده می شود، همان طور که مشخص است در این مقایسه از علامت منطقی ! استفاده شده است.
(point > 12 && point < 20)
عبارت بالا یعنی اگر متغیر point بزرگتر از 12 و در عین حال کوچکتر از 20 باشد رابطه برقرار و مقدار true برگردانده می شود، در این رابطه نیز برای بررسی چندگانه از علامت && استفاده کرده ایم و در صورتی کل این رابطه برقرار و true است که نتیجه هر دو مقایسه true باشد.
(point > 12 || point < 20)
عبارت بالا یعنی اگر متغیر point بزرگتر از 12 یا کوچکتر از 20 باشد رابطه برقرار و مقدار true برگردانده می شود، در این رابطه نیز برای بررسی چندگانه از علامت || استفاده کرده ایم و در صورتی کل این رابطه برقرار و true است که نتیجه یکی از دو مقایسه true باشد.
در خاتمه این آموزش برای جمع بندی مباحثی که در خصوص عملگرها (Operators) فرا گرفتیم، نمونه کد زیر را به همراه پیش نمایش آنلاین آن بررسی می کنیم.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | محاسبه، مقایسه و منطق در جاوا اسکریپت</title>
<!-- Webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    text-align:justify;
    font-size:12px;
    direction:rtl;
    line-height:24px;
}
.ltr{
    direction:ltr;
}
</style>
<script type="text/javascript">
var A = 100, B = 160, C = 250;
var newline = '<br>';

if((A + B) < C){
    document.write('متغیر A با مقدار اولیه ' + A + ' به اضافه ' + B + ' (نتیجه: ' + (A + B) + ') از متغیر C با مقدار اولیه ' + C + ' کوچکتر است!');
} else {
    document.write('متغیر A با مقدار اولیه ' + A + ' به اضافه ' + B + ' (نتیجه: ' + (A + B) + ') از متغیر C با مقدار اولیه ' + C + ' بزرگتر است!');
}

document.write(newline);

if(((B - A) * 2) > C){
    document.write('متغیر B با مقدار اولیه ' + B + ' منهای A با مقدار اولیه ' + A + ' ضربدر 2 (نتیجه: ' + ((B - A) * 2) + ') از متغیر C با مقدار اولیه ' + C + ' بزرگتر است!');
} else {
    document.write('متغیر B با مقدار اولیه ' + B + ' منهای A با مقدار اولیه ' + A + ' ضربدر 2 (نتیجه: ' + ((B - A) * 2) + ') از متغیر C با مقدار اولیه ' + C + ' کوچکتر است!');
}

document.write(newline);

if(A < B && C > B){
    document.write('متغیر C با مقدار اولیه ' + C + ' از متغیرهای A با مقدار اولیه ' + A + ' و B با مقدار اولیه ' + B + ' بزرگتر است!');    
} else if((A < B || C > A)){
    document.write('متغیر A با مقدار اولیه ' + A + ' از متغیر B با مقدار اولیه ' + B + ' کوچکتر یا متغیر C با مقدار اولیه ' + C + ' از متغیر A با مقدار اولیه ' + A + ' بزرگتر است!');    
} else if(!(C == A)){
    document.write('متغیر C با مقدار اولیه ' + C + ' برابر نیست با متغیر A با مقدار اولیه ' + A + '!');    
} else {
    document.write('متغیر A با مقدار اولیه ' + A + ' از متغیر B با مقدار اولیه ' + B + ' بزرگتر است یا متغیر C با مقدار اولیه ' + C + ' از متغیر A با مقدار اولیه ' + A + ' کوچکتر است!');
}
</script>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیر فعال است!
</noscript>
<hr>
- برای بررسی و تست بیشتر نمونه کد می توانیم مقادیر اولیه متغیرها را ویرایش کرده و نتیجه را در مرورگر مشاهده کنیم.
<br>
- در این نمونه کدها از دستورات شرطی if، else if و else استفاده شده است که در این خصوص در آموزش های بعدی به صورت جداگانه توضیح خواهیم داد، برای این مرحله از آموزش کافی است در این حد بدانیم که if به معنی "اگر"، else if به معنی "در غیر این صورت اگر" و else به معنی "در غیر این صورت" است.
<br>
- در هنگام نوشتن اسکریپت های کاربردی معمولا عملگرهای مختلف به صورت ترکیبی مورد استفاده قرار می گیرند و وابسته به یکدیگر هستند، البته قاعدتا هر عملگر معنی و نتیجه خاصی دارد که باید متناسب با هدف برنامه نویس استفاده شود.
</body>
</html>
پیش نمایش
علاوه بر عملگرهای پرکاربردی که مرور کردیم، جاوا اسکریپت از عملگرهای باینری (Bitwise) نیز پشتیبانی می کند که به جهت پیشرفته بودن مبحث، کاربردهای خاص و جلوگیری از پیچیده شدن آموزش، بررسی این موضوع را به مطالب بعدی موکول می کنیم.
sectionدسته بندی: آموزش مقدماتی » JavaScript
related مطالب بیشتر:
» رویداد ها (Events) در جاوا اسکریپت (JavaScript)
» دستورات شرطی (Conditional Statements) در جاوا اسکریپت (JavaScript)
» حلقه for و while در جاوا اسکریپت (JavaScript)
» توابع (Functions) در جاوا اسکریپت (JavaScript)
» تعریف و استفاده از متغیر (Variable) در جاوا اسکریپت (JavaScript)
commentنظرات (۸ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: علیرضا
زمان: ۰۰:۱۶:۲۱ - تاریخ: ۱۳۹۲/۰۴/۱۳
تو عمرم برای کسی این طوری که برای شما آرزوی خوشبختی کردم آرزو نکرده بودم.
با چه برنامه کدها را می نویسید که وقتی از حروف و متغیر با حرف فارسی استفاده می کنید. به هم نمیریزه؟
من با
notepad++
کار می کنم جونم رو به لبم رسونده.
پاسخ: 
نظر لطف شما است.
برنامه ++Notepad ویرایشگر سبک، ساده و خوبی است، منتها برای حروف فارسی باید از قسمت View گزینه Text Direction RTL را انتخاب کنید.
برای کدنویسی حرفه ای برنامه فوق مناسب نیست و صرفا برای موارد خاصی کاربرد دارد، توصیه می کنیم از یکی از نرم افزارهای زیر استفاده کنید:
- Adobe Dreamweaver بسیار حرفه ای و قدرتمند.
- NetBeans IDE برنامه ای متن باز و حرفه ای، با امکان پشتیبانی از دیگر زبان های برنامه نویسی مانند Java و ...
نویسنده: علیرضا
زمان: ۰۰:۱۸:۳۱ - تاریخ: ۱۳۹۲/۰۴/۱۳
ببخشید یه سوال دیگه هم داشتم اینه که چطور میتونم متغیر های php رو در java مورد برسی قرار بدم مثلا شرط ها و توی جاوا بررسی کنم؟
پاسخ: 
بررسی شرط های PHP در JavaScript امکانپذیر نیست، PHP یک زبان سمت سرور (در سرور اجرا می شود) و JavaScript یک زبان اسکریپت نویسی سمت کاربر (در مرورگر اجرا می شود)!
تنها می توانید کدهای جاوا اسکریپت را به وسیله PHP به صورت داینامیک تولید کنید، یعنی کدها ابتدا توسط PHP پردازش و هر کجا نیاز بود، مقادیری جایگزین و سپس کد جاوا اسکریپت به صورت خروجی HTML تولید می شود، مثال:
<?php
$var = 1;
echo '<script type="text/javascript">
alert('.$var.');
</script>';
?>
نویسنده: milad
زمان: ۱۹:۴۵:۲۵ - تاریخ: ۱۳۹۲/۰۵/۳۱
واقعا مفید و کامل بود
ممنون از مقالتون
نویسنده: روزبه جعفری
زمان: ۱۴:۰۹:۲۷ - تاریخ: ۱۳۹۲/۰۶/۲۷
خیلی سایت جامع و کاملی دارین! امیدوارم به همین صورت در این راه قدم بردارید. براتون آرزوی موفقیت و بهروزی دارم.
با تشکر
پاسخ: 
خیلی ممنون از نظر لطف شما.
نویسنده: رضا
زمان: ۱۷:۴۵:۲۵ - تاریخ: ۱۳۹۲/۰۸/۰۵
می بخشید میشه راهنمایی کنید ایراد این قطعه کد چیه من هر کاری میکنم no بر میگرده در حالی که display مربوطه برابر با block هست
if(document.getElementById("castel").style.display=="block")
alert("yes")
else
alert("no")
پاسخ: 
ایرادی در کدهای شما دیده نمی شود، ممکن است مشکل از جای دیگری باشد، به فرض id صحیح نباشد (حساس به حروف بزرگ و کوچک) یا پیش از دسترسی مفسر جاوا اسکریپت به تگ HTML در DOM، کدها را فراخوانی کرده باشید، در این صورت راه حل مشکل این است که یا کدها را بعد از تگ قرار دهید یا از نمونه کد زیر استفاده کنید:
<div id="castel"></div>
<script type="text/javascript">
window.onload = function(){
if(document.getElementById("castel").style.display=="block")
alert("yes")
else
alert("no")
}
</script>
نویسنده: بهنام
زمان: ۱۰:۵۷:۱۲ - تاریخ: ۱۳۹۲/۱۱/۲۹
سلام
از آموزش های مفید جاوا اسکریپت بسیار ممنون
من یک کد بارگذاری نوشتم ولی درست عمل نکرد میخواهم وقتی صفحه کامل لود شد یعنی از حالت لودینگ ایستاد کل محتوای وب نمایش داده بشه
<script type="text/javascript">
//<![CDATA[
window.onload = function(){
document.getElementById("amir").style.display = "block";
}
//]]>
</script>
<div id="amir" style="display:none;">
محتوای وب
</div>
میخواهم وقتی که صفحه لود شد
display = block
شود ولی قبل از اینکه صفحه لود شود این عمل انجام میپذرید
پاسخ: 
متد window.onload در اکثر مرورگر ها به خوبی پشتیبانی می شود، امکان دارد تست را در لوکال انجام داده باشید (که سرعت بارگذاری معمولا بسیار بالا است)، صفحه خود را در سرور و به صورت آنلاین تست نمائید، سعی کنید از alert برای خطایابی استفاده کنید.
نویسنده: بهنام
زمان: ۰۱:۰۵:۱۸ - تاریخ: ۱۳۹۲/۱۱/۳۰
سلام
نخیر در بلاگفا انجام دادم
متد window.onload فقط می فهماند که فقط صفحه بالا اومد اون کارها را انجام بده ولی میگم یک متد یا تابع دیگه ای نیست که بفهماند صفحه به طول کامل بارگذاری شد به طوری که صفحه از لودینگ بایستد اگر هست توضیح دهید ممنونم
پاسخ: 
window.onload یک متد استاندارد است و معمولا نیازی به استفاده از روش های جایگزین نیست، روش های دیگر استفاده از رویداد onload در تگ body و اگر از جی کئوری استفاده کنید، متد document.ready قابل استفاده است.
نویسنده: محمود
زمان: ۰۹:۳۹:۴۱ - تاریخ: ۱۳۹۷/۰۴/۲۳
سلام و وقت بخیر.
آیا می شود با حلقۀ for مجموع اعداد یک ستون از جدول را بصورت خودکار تا رسیدن به یک عدد بخصوص در پایین آن درج کرد . لطفن کمک کنید.
مانند مثال زیر.
for ( i = x; k<=40; k=x+i)
پاسخ: 
قاعدتا چنین کاری شدنی است، منتها بسته به فرمت HTML خروجی جدول و اینکه چه تعداد سطر و ستون مد نظر است کدنویسی متفاوت خواهد بود، در مجموع با متد زیر می توان به سطر و ستون مورد نظر دسترسی داشت و مقدار آن را استخراج کرد:
document.getElementById("tbl_id").rows[0].cells[0].innerHTML
این کد مقدار سطر اول از ستون اول جدول را استخراج می کند، برای حالت داینامیک به جای 0 می توانیم از متغیر استفاده کنیم.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




2 × 3
 refresh
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشند که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
آگهی
طراحی سایت
Oxweb.ir

ارائه خدمات طراحی سایت | طراحی وب سایت در تهران