در زبان جاوااسکریپت برای اعداد یک نوع داده ای بیشتر وجود ندارد و از همان کلمه رزرو شده ی var برای تعریف اعداد صحیح و اعشاری استفاده میکنیم. در این فصل با اعداد در جاوا اسکریپت آشنا میشویم.
جاوا اسکریپت تنها دارای یک نوع داده ای برای اعداد است. اعداد میتوانند صحیح و یا اعشاری نوشته شوند :
<p id="demo"></p>
<script>
var x = 3.14;
var y = 3;
document.getElementById("demo").innerHTML = x + "<br>" + y;
</script>
خروجی نمونه مثال بالا به شکل زیر است :
3.14
3
اعداد خیلی بزرگ و یا اعداد خیلی کوچک را می توان با استفاده از علامت e
مشخص نمود :
<p id="demo"></p>
<script>
var x = 123e5;
var y = 123e-5;
document.getElementById("demo").innerHTML = x + "<br>" + y;
</script>
خروجی نمونه مثال بالا به شکل زیر است :
12300000
0.00123
دقت داشته باشید که جاوا اسکریپت از عملگر +
برای الحاق دو رشته استفاده میکند. اعداد با استفاده از این عملگر با هم جمع شده و در رشته ها الحاق می شوند. اگر شما دو عدد را با همدیگر جمع کنید نتیجه یک عدد خواهد شد :
<p id="demo"></p>
<script>
var x = 10;
var y = 20;
var z = x + y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا :
30
اگر شما دو رشته را با همدیگر جمع کنید نتیجه الحاق آن دو رشته خواهد بود :
<p id="demo"></p>
<script>
var x = "10";
var y = "20";
var z = x + y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا :
1020
اگر شما یک عدد و یک رشته را با هم دیگر جمع کنید نتیجه تبدیل عدد به رشته و الحاق هر دوی آنهاست :
<p id="demo"></p>
<script>
var x = 10;
var y = "20";
var z = x + y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا :
1020
در نمونه مثال زیر خروجی یک رشته خواهد بود دقت داشته باشید که دو عدد با همدیگر جمع نمی شوند :
<p id="demo"></p>
<script>
var x = 10;
var y = 20;
document.getElementById("demo").innerHTML =
"The result is: " + x + y;
</script>
خروجی نمونه مثال بالا :
The result is: 1020
در نمونه مثال زیر خروجی رشته "102030"
خواهد بود :
<p id="demo"></p>
<script>
var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;
document.getElementById("demo").innerHTML = result;
</script>
نکته : کامپایلر جاوا اسکریپت عبارات را از چپ به راست ارزیابی می کند. بنابراین درمثال بالا ابتدا عبارت 20 + 10
ارزیابی شده که نتیجه عدد 30 است. سپس عبارت 30 + "30"
ارزیابی می شود که نتیجه ی نهایی یک رشته خواهد بود.
رشته ها در جاوا اسکریپ میتوانند محتوای عددی داشته باشند :
var x = 100; // x is a number
var y = "100"; // y is a string
جاوا اسکریپت در عملیات های عددی سعی در تبدیل رشته به عدد را دارد. در نمونه مثال زیر دو عددی که به صورت رشته مشخص شده اند، بدون هیچ مشکلی بر هم تقسیم می شوند :
<p id="demo"></p>
<script>
var x = "100";
var y = "10";
var z = x / y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا :
10
مثال زیر نیز به خوبی کار میکند :
<p id="demo"></p>
<script>
var x = "100";
var y = "10";
var z = x * y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا به شکل زیر است :
1000
نمونه مثال زیر نیز بدون هیچ مشکلی اجرا میشود :
<p id="demo"></p>
<script>
var x = "100";
var y = "10";
var z = x - y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا :
90
اما در نمونه مثال زیر عملگر جمع عملیات الحاق را انجام میدهد :
<p id="demo"></p>
<script>
var x = "100";
var y = "10";
var z = x + y;
document.getElementById("demo").innerHTML = z;
</script>
خروجی نمونه مثال بالا به شکل زیر است :
10010
NaN
یک کلمه رزرو شده در جاوا اسکریپت است و مشخص می کند مقدار مورد نظر یک عدد معتبر نیست. سعی در به کار بردن یک رشته غیر عددی در یک عملیات عددی باعث خواهد شد نتیجه NaN باشد :
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 100 / "Apple";
</script>
خروجی نمونه مثال بالا به شکل زیر است :
NaN
با این حال اگر رشته شامل مقدار عددی باشد نتیجه یک عدد خواهد بود :
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 100 / "10";
</script>
خروجی نمونه مثال بالا :
10
میتوان از متد ()isNaN
در جاوا اسکریپت برای معتبر بودن یک value
استفاده نمود :
<p id="demo"></p>
<script>
var x = 100 / "Apple";
document.getElementById("demo").innerHTML = isNaN(x);
</script>
خروجی نمونه مثال بالا :
true
در صورتی که از مقدار NaN
در یک عملیات ریاضی استفاده کنید، نتیجه NaN
خواهد بود :
<p id="demo"></p>
<script>
var x = NaN;
var y = 5;
document.getElementById("demo").innerHTML = x + y;
</script>
خروجی نمونه مثال بالا :
NaN