تفاوت میان نسخه‌های «JavaScript:اعداد در جاوااسکریپت»

از ویکی کد
پرش به ناوبری پرش به جستجو
(صفحه‌ای تازه حاوی «JavaScript has only one type of number. Numbers can be written with or without decimals. جاوااسکریپت فقط یک نوع از ا...» ایجاد کرد)
 
جز (Admin صفحهٔ اعداد در جاوااسکریپت را بدون برجای‌گذاشتن تغییرمسیر به JavaScript:اعداد در جاوااسکریپت منتقل کرد)
 
(۴ نسخهٔ میانیِ همین کاربر نمایش داده نشده است)
سطر ۱: سطر ۱:
JavaScript has only one type of number. Numbers can be written with or without decimals.
+
{{منو عمودی جاوااسکریپت}}جاوااسکریپت فقط یک نوع از اعداد را می‌شناسد. اعداد می‌توانند به صورت اعشاری یا بدون اعشار نوشته شوند. <ref>[https://www.w3schools.com/js/js_numbers.asp w3schools.com: JavaScript Numbers]</ref>
  
جاوااسکریپت فقط یک نوع از اعداد را می شناسد  اعداد می توانند به صورت اعشاری و یا بدون اعشار نوشته شوند .
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
var x = 3.14; // A number with decimals
 +
var y = 3; // A number without decimals
 +
</syntaxhighlight>اعداد بسیار بزرگ یا بسیار کوچک را می‌توان به صورت عدد علمی نوشت:
  
=== Example ===
+
===مثال===
var x = 3.14;   // A number with decimals
+
<syntaxhighlight lang="javascript">
 +
var x = 123e5;    // 12300000
 +
var y = 123e-5;   // 0.00123
 +
</syntaxhighlight>
  
var y = 3;      // A number without decimals
+
==تمامی اعداد در جاوااسکریپت همیشه از نوع ۶۴ بیت اعشاری هستند==
 +
برخلاف سایر زبان‌های برنامه‌نویسی، جاوااسکریپت انواع مختلفی از اعداد همانند integer , Short , long , floating-point و… را برای خود تعریف نکرده‌است.
  
Extra large or extra small numbers can be written with scientific (exponent) notation:
+
اعداد در جاوااسکریپت تحت استاندارد IEEE754 و با دقت اعداد اعشاری بالا ذخیره می‌شوند.
  
اعداد بسیار بزرگ و یا بسیار کوچک را می توان به صورت عدد علمی نوشت :
+
در این نوع از ذخیره‌سازی اعداد در ۶۴ بیت ذخیره می‌گردند، جایی که اعداد (کسر) در بیت ۰ تا ۵۱ ذخیره می‌شود، توان عدد از بیت ۵۲ ام تا ۶۲ بیت و علامت، در بیت ۶۳ ام ذخیره می‌گردد.
 
+
{| class="wikitable" style="width: 70%;"
=== Example ===
+
! style="background:#D0ECE7;" width="15%" |مقدار یا به عبارتی عدد اصلی
var x = 123e5;   // 12300000
+
! style="background:#D0ECE7;" width="15%" |توان
 
+
! style="background:#D0ECE7;" width="15%" |علامت
var y = 123e-5;   // 0.00123
 
 
 
== JavaScript Numbers are Always 64-bit Floating Point ==
 
'''تمامی اعداد در جاوااسکریپت همیشه از نوع 64 بیت اعشاری هستند .'''
 
 
 
Unlike many other programming languages, JavaScript does not define different types of numbers, like integers, short, long, floating-point etc.
 
 
 
برخلاف سایر زبان های برنامه نویسی ، جاوااسکریپت انواع مختلفی از اعداد همانند integer ، Short ، long ، floating-point و... را برای خود تعریف نکرده است .
 
 
 
JavaScript numbers are always stored as double precision floating point numbers, following the international IEEE 754 standard.
 
 
 
اعداد در جاوااسکریپت تحت استاندارد IEEE754 و با دقت اعداد اعشاری بالا ذخیره می شوند .
 
 
 
This format stores numbers in 64 bits, where the number (the fraction) is stored in bits 0 to 51, the exponent in bits 52 to 62, and the sign in bit 63:
 
 
 
در این نوع از ذخیره سازی اعداد در 64 بیت ذخیره می گردند ، جای که اعداد (کسر) در بیت 0 تا 51 ذخیره می شود ، توان عدد از بیت 52 ام تا 62 بیت و علامت در بیت 63 ام ذخیره می گردد .  
 
{| class="wikitable"
 
|مقدار یا به عبارتی عدد اصلی
 
|توان
 
|علامت
 
 
|-
 
|-
|52 بیت (از 0 تا 51 )
+
| style="direction:rtl;" |۵۲ بیت (از ۰ تا ۵۱)
|11 بیت ( از 52 تا 62)
+
| style="direction:rtl;" |۱۱ بیت (از ۵۲ تا ۶۲)
|یک بیت (بیت 63)  
+
| style="direction:rtl;" |یک بیت (بیت ۶۳)
 
|}
 
|}
 +
==دقت اعداد در جاوااسکریپت==
 +
اعداد صحیح (عددهای بدون اعشار یا کسری) تا ۱۵ رقم قابل محاسبه هستند.
  
== Precision ==
+
===مثال===
دقت اعداد در جاوااسکریپت
+
<syntaxhighlight lang="javascript">
 +
var x = 999999999999999;  // x will be 999999999999999
 +
var y = 9999999999999999;  // y will be 10000000000000000
 +
</syntaxhighlight>بیشترین دقت اعشاری که پشتیبانی می‌شود ۱۷ رقم است، اما دقت این اعداد اعشاری همیشه %۱۰۰ نیست:
  
Integers (numbers without a period or exponent notation) are accurate up to 15 digits.
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
var x = 0.2 + 0.1;        // x will be 0.30000000000000004
 +
</syntaxhighlight>برای حل مشکل بالا بهتر است که از ضرب و تقسیم استفاده کنید:
  
اعداد صحیح ( عدد های بدون اعشار و یا کسری ) تا 15 رقم قابل محاسبه هستند .  
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
var x = (0.2 * 10 + 0.1 * 10) / 10;      // x will be 0.3
 +
</syntaxhighlight>
  
=== Example ===
+
==جمع بستن اعداد و رشته‌های متنی==
var x = 999999999999999;   // x will be 999999999999999
+
{{نکته|type=delete|text='''هشدار !!'''{{سرخط}}
 +
جاوااسکریپت از عملگر + هم برای جمع کردن و هم برای چسباندن رشته‌ها استفاده می‌کند.{{سرخط}}
 +
اعداد با یکدیگر جمع می‌شوند. رشته‌ها به یکدیگر می‌چسبند.
 +
}}
  
var y = 9999999999999999;  // y will be 10000000000000000
+
اگر شما دو عدد را با یکدیگر جمع ببندید، نتیجه نیز یک عدد خواهد بود:
  
The maximum number of decimals is 17, but floating point arithmetic is not always 100% accurate:
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
بیشترین دقت اعشاری که پشتیبانی می شود 17 رقم است ، اما دقت این اعداد اعشاری همیشه %100 نیست :
 
 
 
=== Example ===
 
var x = 0.2 + 0.1;         // x will be 0.30000000000000004
 
 
 
To solve the problem above, it helps to multiply and divide:
 
 
 
برای حل مشکل بالا بهتر است که از ضرب و تقسیم استفاده کنید:
 
 
 
=== Example ===
 
var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3
 
 
 
== Adding Numbers and Strings ==
 
'''جمع بستن اعداد و رشته های متنی'''
 
 
 
'''هشدار !!'''
 
 
 
JavaScript uses the + operator for both addition and concatenation.
 
 
 
جاوااسکریپت از عملگر + هم برای جمع کردن و هم برای چسباندن رشته ها استفاده می کند .
 
 
 
Numbers are added. Strings are concatenated.
 
 
 
اعداد با یک دیگر جمع می شوند . رشته ها به یک دیگر می چسبند .
 
 
 
If you add two numbers, the result will be a number:
 
 
 
اگر شما دو عدد را با یک دیگر جمع ببندید ، نتیجه نیز یک عدد خواهد بود :
 
 
 
=== Example ===
 
 
var x = 10;
 
var x = 10;
 
 
var y = 20;
 
var y = 20;
 +
var z = x + y;          // z will be 30 (a number)
 +
</syntaxhighlight>اگر شما دو رشتهٔ متنی را با یکدیگر جمع ببندید، در نتیجه رشته‌ها یکدیگر چسبیده می‌شوند:
  
var z = x + y;           // z will be 30 (a number)
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
If you add two strings, the result will be a string concatenation:
 
 
 
اگر شما دو رشته متنی را با یک دیگر جمع ببندید ، در نتیجه رشته ها به یک چسبیده می شوند :
 
 
 
=== Example ===
 
 
var x = "10";
 
var x = "10";
 
 
var y = "20";
 
var y = "20";
 +
var z = x + y;          // z will be 1020 (a string)
 +
</syntaxhighlight>اگر شما یک عدد را با یک رشتهٔ متنی جمع ببندید، نتیجه یک مجموعه از رشته‌ها خواهد بود:
  
var z = x + y;           // z will be 1020 (a string)
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
If you add a number and a string, the result will be a string concatenation:
 
 
 
اگر شما یک عدد را با یک رشته متنی جمع ببندید ، نتیجه یک مجموعه از رشته ها خواهد بود :
 
 
 
=== Example ===
 
 
var x = 10;
 
var x = 10;
 
 
var y = "20";
 
var y = "20";
 +
var z = x + y;          // z will be 1020 (a string)
 +
</syntaxhighlight>اگر شما یک رشتهٔ متنی و یک عدد را با یکدیگر جمع ببندید، نتیجه یک مجموعه از رشته‌ها خواهد بود:
  
var z = x + y;           // z will be 1020 (a string)
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
If you add a string and a number, the result will be a string concatenation:
 
 
 
اگر شما یک رشته متنی و یک عدد را با یک دیگر جمع ببندید ، نتیجه یک مجموعه از رشته ها خواهد بود :
 
 
 
=== Example ===
 
 
var x = "10";
 
var x = "10";
 
 
var y = 20;
 
var y = 20;
 +
var z = x + y;          // z will be 1020 (a string)
 +
</syntaxhighlight>یک اشتباه که ممکن است رخ دهد این است که فکر کنید نتیجه تکه کد زیر برابر با ۳۰ می‌شود:
  
var z = x + y;           // z will be 1020 (a string)
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
A common mistake is to expect this result to be 30:
 
 
 
یک اشتباه که ممکن است رخ دهد این است که فکر کنید نتیجه تکه کد زیر برابر با 30 می شود :
 
 
 
=== Example ===
 
 
var x = 10;
 
var x = 10;
 
 
var y = 20;
 
var y = 20;
 
 
var z = "The result is: " + x + y;
 
var z = "The result is: " + x + y;
 +
</syntaxhighlight>یک اشتباه که ممکن است رخ دهد این است که فکر کنید نتیجه تکه کد زیر برابر با ۱۰۲۰۳۰ می‌شود:
  
A common mistake is to expect this result to be 102030:
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
یک اشتباه که ممکن است رخ دهد این است که فکر کنید نتیجه تکه کد زیر برابر با 102030 می شود :
 
 
 
=== Example ===
 
 
var x = 10;
 
var x = 10;
 
 
var y = 20;
 
var y = 20;
 
 
var z = "30";
 
var z = "30";
 
 
var result = x + y + z;
 
var result = x + y + z;
 +
</syntaxhighlight>
  
The JavaScript interpreter works from left to right.
 
  
مفسر جاوااسکریپت از سمت چپ به راست کار می کند .  
+
{{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=مفسر جاوااسکریپت از سمت چپ به راست کار می‌کند.{{سرخط}}
 +
ابتدا ۲۰ + ۱۰ با یکدیگر جمع می‌شود زیرا هر دو یعنی x و y، عدد هستند.{{سرخط}}سپس عبارت " ۳۰ " + ۳۰ به یکدیگر می‌چسبند زیرا که z یک متغیر از نوع رشته‌ای است.}}
  
First 10 + 20 is added because x and y are both numbers.
+
==عددهای متنی یا رشته‌ای==
 +
رشته‌های متنی در جاوااسکریپت می‌توانند محتوای عددی داشته باشند:<syntaxhighlight lang="javascript">
 +
var x = 100;        // x is a number
  
ابتدا 20+10 با یک دیگر جمع می شود زیرا هر دو یعنی x و y ، عدد هستند .
+
var y = "100";       // y is a string
 
+
</syntaxhighlight>جاوااسکریپت در تمامی عملگرهای عددی رشته‌های متنی را به عدد تبدیل می‌کند:
Then 30 + "30" is concatenated because z is a string.
 
 
 
سپس عبارت " 30 " + 30 به یک دیگر می چسبند زیرا که z یک  متغیر از نوع رشته ای است .
 
 
 
== Numeric Strings ==
 
'''عدد های متنی یا رشته ای'''
 
 
 
JavaScript strings can have numeric content:
 
 
 
رشته های متنی در جاوااسکریپت می توانند محتوای عددی داشته باشند :
 
 
 
var x = 100;         // x is a number
 
 
 
 
 
var y = "100";       // y is a string  
 
 
 
JavaScript will try to convert strings to numbers in all numeric operations:
 
 
 
This will work:
 
 
 
جاوااسکریپت در تمامی عملگر های عددی رشته های متنی را به عدد تبدیل می کند :
 
 
 
کد زیر کار خواهد کرد :
 
  
 +
کد زیر کار خواهد کرد:<syntaxhighlight lang="javascript">
 
var x = "100";
 
var x = "100";
 
 
var y = "10";
 
var y = "10";
 
+
var z = x / y;       // z will be 10
var z = x / y;       // z will be 10  
+
</syntaxhighlight>کد زیر هم همانند کل بالا کار خواهد کرد:<syntaxhighlight lang="javascript">
 
 
This will also work:
 
 
 
کد زیر هم همانند کل بالا کار خواهد کرد :
 
 
 
 
var x = "100";
 
var x = "100";
 
 
var y = "10";
 
var y = "10";
 
+
var z = x * y;       // z will be 1000
var z = x * y;       // z will be 1000  
+
</syntaxhighlight>و کد زیر هم کار خواهد کرد:<syntaxhighlight lang="javascript">
 
 
And this will work:
 
 
 
و کد زیر هم کار خواهد کرد :
 
 
 
 
var x = "100";
 
var x = "100";
 
 
var y = "10";
 
var y = "10";
 
+
var z = x - y;       // z will be 90
var z = x - y;       // z will be 90  
+
</syntaxhighlight>اما کد زیر کار نخواهد کرد:<syntaxhighlight lang="javascript">
 
 
But this will not work:
 
 
 
اما کد زیر کار نخواهد کرد :
 
 
 
 
var x = "100";
 
var x = "100";
 
 
var y = "10";
 
var y = "10";
 +
var z = x + y;      // z will not be 110 (It will be 10010)
 +
</syntaxhighlight>{{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=در آخرین مثال، جاوااسکریپت از عملگر + برای چسباندن رشته‌های متنی به یکدیگر استفاده می‌کند.}}
  
var z = x + y;       // z will not be 110 (It will be 10010)
+
==کلمهٔ کلیدی NaN – عدد نباشد==
 
+
{{Code|code=NaN|lang=javascript}}یک کلمهٔ کلیدی است که مشخص می‌کند یک عدد مطابق با قوانین داده‌های عددی در جاوااسکریپت همخوانی ندارد.
In the last example JavaScript uses the + operator to concatenate the strings.
 
 
 
در آخرین مثال جاوااسکریپت از عملگر + برای چسباندن رشته های متنی به یک دیگر استفاده می کند .
 
 
 
== NaN - Not a Number ==
 
کلمه کلیدی NaN – عدد نباشد .
 
 
 
<code>NaN</code> is a JavaScript reserved word indicating that a number is not a legal number.
 
 
 
NaN یک کلمه کلیدی است که مشخص می کند یک عدد مطابق با قوانین داده های عددی در جاوااسکریپت همخوانی ندارد.  
 
 
 
Trying to do arithmetic with a non-numeric string will result in <code>NaN</code> (Not a Number):
 
  
زمانی که سعی می کنید عملیات های ریاضی رابا رشته های متنی غیر عددی انجام دهید نتیجه عبارت NaN (یک عدد نیست ) خواهد بود :
+
زمانی که سعی می‌کنید عملیات‌های ریاضی را با رشته‌های متنی غیر عددی انجام دهید نتیجهٔ عبارت{{Code|code=NaN|lang=javascript}}(یک عدد نیست) خواهد بود:
  
=== Example ===
+
===مثال===
var x = 100 / "Apple";  // x will be NaN (Not a Number)
+
<syntaxhighlight lang="javascript">
 +
var x = 100 / "Apple"; // x will be NaN (Not a Number)
 +
</syntaxhighlight>اما در صورتی که یک رشتهٔ متنی شامل مقادیر عددی شود، نتیجه یک عدد خواهدبود:
  
However, if the string contains a numeric value , the result will be a number:
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
var x = 100 / "10";    // x will be 10
 +
</syntaxhighlight>شما می‌توانید از تابع{{Code|code=isNaN()|lang=javascript}}که یک تابع global است استفاده کنید تا از عدد بودن یک مقدار یا عدد نبودن آن اطلاع پیدا کنید:
  
اما در صورتی که یک رشته متنی شامل مقادیر عددی شود ، نتیجه یک عدد خواهدبود :
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
=== Example ===
 
var x = 100 / "10";     // x will be 10
 
 
 
You can use the global JavaScript function <code>isNaN()</code> to find out if a value is a number:
 
 
 
شما می توانید از تابع isNaN() که یک تابع global است استفاده کنید تا از عدد بودن یک مقدار یا عدد نبودن آن اطلاع پیدا کنید :
 
 
 
=== Example ===
 
 
var x = 100 / "Apple";
 
var x = 100 / "Apple";
 +
isNaN(x);              // returns true because x is Not a Number
 +
</syntaxhighlight>به{{Code|code=NaN|lang=javascript}}نگاه کنید. اگر شما از کلمهٔ{{Code|code=NaN|lang=javascript}}در یک عملیات ریاضی استفاده کنید، نتیجه نیز برابر با عبارت{{Code|code=NaN|lang=javascript}}خواهد بود:
  
isNaN(x);              // returns true because x is Not a Number
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
Watch out for <code>NaN</code>. If you use <code>NaN</code> in a mathematical operation, the result will also be <code>NaN</code>:
 
 
 
به NaN نگاه کنید. اگر شما از کلمهNaN در یک عملیات ریاضی استفاده کنید ، نتیجه نیز برابر با عبارت NaN خواهد بود :
 
 
 
=== Example ===
 
 
var x = NaN;
 
var x = NaN;
 
 
var y = 5;
 
var y = 5;
 +
var z = x + y;        // z will be NaN
 +
</syntaxhighlight>و یا نتیجه یک رشتهٔ متنی به هم چسبیده خواهد بود:
  
var z = x + y;         // z will be NaN
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
Or the result might be a concatenation:
 
 
 
و یا نتیجه یک رشته متنی به هم چسبیده خواهد بود:
 
 
 
=== Example ===
 
 
var x = NaN;
 
var x = NaN;
 
 
var y = "5";
 
var y = "5";
 +
var z = x + y;        // z will be NaN5
 +
</syntaxhighlight>کلمهٔ کلیدی{{Code|code=NaN|lang=javascript}}از نوع عددی است: اگر نوع این کلمه را با کد{{Code|code=typeof NaN|lang=javascript}} بررسی کنیم خروجی نوع عددی خواهد بود:
  
var z = x + y;         // z will be NaN5
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
typeof NaN;           // returns "number"
 +
</syntaxhighlight>
  
<code>NaN</code> is a number: <code>typeof NaN</code> returns <code>number</code>:
+
==بی‌نهایت==
 +
مقدار{{Code|code=Infinity|lang=javascript}}یا بی‌نهایت (یا منفی بی‌نهایت{{Code|code=-Infinity|lang=javascript}}) مقداری است که جاوااسکریپت زمانی که شما محاسبه‌ای انجام دهید که حاصل آن از بزرگترین عدد ممکن بیشتر باشد.
  
کلمه کلیدی NaN از نوع عددی است : اگر  نوع این کلمه را با کد  <code>typeof NaN</code>  بررسی کنیم خروجی نوع عددی خواهد بود :
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
=== Example ===
 
typeof NaN;           // returns "number"  
 
 
 
== Infinity ==
 
بی نهایت
 
 
 
<code>Infinity</code> (or <code>-Infinity</code>) is the value JavaScript will return if you calculate a number outside the largest possible number.
 
 
 
مقدارInfinity یا بی نهایت ( یا منفی بی نهایت )مقداری است که جاوااسکریپت زمانی که شما محاسبه ای انجام دهید که حاصل آن از بزرگترین عدد ممکن بیشتر باشد .
 
 
 
=== Example ===
 
 
var myNumber = 2;
 
var myNumber = 2;
 
+
while (myNumber != Infinity) {   // Execute until Infinity
while (myNumber != Infinity) {   // Execute until Infinity
+
  myNumber = myNumber * myNumber;
 
 
  myNumber = myNumber * myNumber;
 
 
 
 
}
 
}
 +
</syntaxhighlight>تقسیم بر صفر نیز موجب بروز{{Code|code=Infinity|lang=javascript}}می‌شود:
  
Division by 0 (zero) also generates <code>Infinity</code>:
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
تقسیم بر صفر نیز موجب بروز Infinity می شود :
+
var x = 2 / 0;       // x will be Infinity
 
+
var y = -2 / 0;       // y will be -Infinity
=== Example ===
+
</syntaxhighlight>مقدار{{Code|code=Infinity|lang=javascript}}یک عدد است، اگر برای این مقدار از عملگر{{Code|code=typeof Infinity|lang=javascript}}استفاده کنید مقدار بازگشتی عملگر{{Code|code=typeof|lang=javascript}}، نوع عددی ({{Code|code=number|lang=javascript}}) خواهد بود.
var x =  2 / 0;       // x will be Infinity
 
 
 
var y = -2 / 0;       // y will be -Infinity  
 
 
 
<code>Infinity</code> is a number: <code>typeof Infinity</code> returns <code>number</code>.
 
 
 
مقدار Infinity یک عدد است ، اگر برای این مقدار از عملگر typeof استفاده کنید مقدار بازگشتی عملگر Typeof ، نوع عددی یا number خواهد بود.
 
 
 
=== Example ===
 
typeof Infinity;    // returns "number"
 
 
 
== Hexadecimal ==
 
عدد های هگزا دسیمال (مبنای 16)
 
 
 
JavaScript interprets numeric constants as hexadecimal if they are preceded by 0x.
 
 
 
مفسر جاوااسکریپت اگر عددی با x0شروع شود آن را به عنوان عدد هگزا دسیمال (مبنای 16) در نظر می گیرد .
 
 
 
=== Example ===
 
var x = 0xFF;       // x will be 255
 
 
 
Never write a number with a leading zero (like 07).
 
 
 
هیچ وقت عددی را با صفر شروع نکنید . (همانند 07).
 
  
Some JavaScript versions interpret numbers as octal if they are written with a leading zero.
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
typeof Infinity;    // returns "number"
 +
</syntaxhighlight>
  
برخی از ورژنهای مفسر جاوااسکریپت اگر یک عدد با صفر شروع شود آن را در مبنای 8 یا octal در نظر میگیرند .  
+
==عددهای هگزادسیمال (مبنای ۱۶)==
 +
مفسر جاوااسکریپت اگر عددی با{{Code|code=0x|lang=css}}شروع شود آن را به عنوان عدد هگزادسیمال (مبنای ۱۶) در نظر می‌گیرد.
  
By default, JavaScript displays numbers as '''base 10''' decimals.
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
var x = 0xFF;        // x will be 255
 +
</syntaxhighlight>{{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=هیچ وقت عددی را با صفر شروع نکنید. (همانند ۰۷).{{سرخط}}
 +
برخی از ورژن‌های {{به انگلیسی|versions}} مفسر جاوااسکریپت، اگر یک عدد با صفر شروع شود آن را در مبنای ۸ (octal) در نظر می‌گیرند.
 +
}}
  
به صورت پیشفرض ، جاوااسکریپت اعداد را بر '''مبنای 10''' نمایش می دهد .  
+
به صورت پیشفرض، جاوااسکریپت اعداد را بر '''مبنای ۱۰''' نمایش می‌دهد.
  
But you can use the <code>toString()</code> method to output numbers from '''base 2''' to '''base 36'''.
+
اما شما می‌توانید از متد{{Code|code=toString()|lang=javascript}}برای چاپ اعداد '''مبنای ۲''' تا '''مبنای ۳۶''' استفاده کنید.
  
اما شما می توانید از متد toString() برای چاپ اعداد '''مبنای 2''' تا '''مبنای 36''' استفاده کنید .  
+
اعداد هگزادسیمال '''مبنای ۱۶''' هستند. اعداد دسیمال '''مبنای ۱۰''' هستند. اعداد اکتال {{به انگلیسی|Octal}} '''مبنای ۸''' هستند. اعداد باینری نیز '''مبنای ۲''' هستند.
  
Hexadecimal is '''base 16'''. Decimal is '''base 10'''. Octal is '''base 8'''. Binary is '''base 2'''.
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
اعداد هگزا دسیمال '''مبنای 16''' هستند . اعداد دسیمال '''مبنای 10''' هستند . اعداد اکتال یا octal '''مبنای 8''' هستند . اعداد باینری نیز '''مبنای دو''' هستند .
 
 
 
=== Example ===
 
 
var myNumber = 32;
 
var myNumber = 32;
 +
myNumber.toString(10);  // returns 32
 +
myNumber.toString(32);  // returns 10
 +
myNumber.toString(16);  // returns 20
 +
myNumber.toString(8);  // returns 40
 +
myNumber.toString(2);  // returns 100000
 +
</syntaxhighlight>
  
myNumber.toString(10);  // returns 32
+
==اعداد می‌توانند اشیاء باشند.==
 
+
به صورت عادی اعداد در جاوااسکریپت اعدادی از نوع primitve {{به فارسی|اصلی}} هستند که از عبارت‌های ساده تشکیل می‌شوند:<syntaxhighlight lang="javascript">
myNumber.toString(32);  // returns 10
+
var x = 123;
 +
</syntaxhighlight>اما اعداد را نیز می‌توان با استفاده از کلمهٔ کلیدیبه صورت یک شیء تعریف کرد:<syntaxhighlight lang="javascript">
 +
var y = new Number(123);
 +
</syntaxhighlight>
  
myNumber.toString(16);  // returns 20
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
myNumber.toString(8);   // returns 40
 
 
 
myNumber.toString(2);   // returns 100000
 
 
 
== Numbers Can be Objects ==
 
اعداد میتوانند اشیاء باشند .
 
 
 
Normally JavaScript numbers are primitive values created from literals:
 
 
 
به صورت عادی اعداد در جاوااسکریپت اعداد از نوعprimitve (اصلی) هستند که از عبارتهای ساده تشکیل می شوند:
 
 
 
<code>var x = 123;</code>
 
 
 
But numbers can also be defined as objects with the keyword <code>new</code>:
 
 
 
اما اعداد را نیز می توان با استفاده از کلمه کلیدی new به صورت یک شی تعریف کرد :
 
 
 
<code>var y = new Number(123);</code>
 
 
 
=== Example ===
 
 
var x = 123;
 
var x = 123;
 
 
var y = new Number(123);
 
var y = new Number(123);
 
  
 
// typeof x returns number
 
// typeof x returns number
 +
// typeof y returns object
 +
</syntaxhighlight>{{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=اعداد را به صورت اشیاء تعریف نکنید. این امر موجب کند شدن اجرای کد می‌شود.{{سرخط}}
 +
کلمهٔ کلیدی{{Code|code=new|lang=javascript}}موجب پیچیده شدن کد شما می‌شود. این امر می‌تواند موجب بروز خطاهای ناخواسته شود:
 +
}}
  
// typeof y returns object
+
زمانی که از عملگر{{Code|code===|lang=javascript}}استفاده می‌کنید، اعداد برابر با یکدیگر برابرند:
 
 
Do not create Number objects. It slows down execution speed.
 
 
 
اعداد را به صورت اشیا تعریف نکنید . این امر موجب کند شدن اجرای کد می شود .
 
 
 
The <code>new</code> keyword complicates the code. This can produce some unexpected results:
 
 
 
کلمه کلیدی new موجب پیچیده شدن کد شما می شود . این امر میتواند موجب بروز خطاهای ناخواسته شود :
 
 
 
When using the <code>==</code> operator, equal numbers are equal:
 
 
 
زمانی که از عملگر == استفاده می کنید ، اعداد برابر با یک دیگر برابرند :
 
 
 
=== Example ===
 
var x = 500;            
 
  
 +
===مثال===
 +
<syntaxhighlight lang="javascript">
 +
var x = 500;           
 
var y = new Number(500);
 
var y = new Number(500);
  
 +
// (x == y) is true because x and y have equal values
 +
</syntaxhighlight>زمانی که از{{Code|code====|lang=javascript}}  استفاده می‌کنید، اعداد برابر، با یکدیگر برابر نیستند، زیرا عملگر{{Code|code====|lang=javascript}}عملوندهای خود را از نظر برابری مقدار و نوع بررسی می‌کند.
  
// (x == y) is true because x and y have equal values
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
When using the <code>===</code> operator, equal numbers are not equal, because the <code>===</code> operator expects equality in both type and value.
+
var x = 500;            
 
 
زمانی که از === استفاده می کنید ، اعداد برابر با یک دیگر برابر نیستند ، زیرا عملگر ===  عملوندهای خود را از نظر برابری مقدار و نوع بررسی می کند .
 
 
 
=== Example ===
 
var x = 500;            
 
 
 
 
var y = new Number(500);
 
var y = new Number(500);
  
 +
// (x === y) is false because x and y have different types
 +
</syntaxhighlight>و یا حتی نتیجه می‌تواند بدتر باشد. اشیاء را نمی‌توان مقایسه کرد:
  
// (x === y) is false because x and y have different types
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
Or even worse. Objects cannot be compared:
+
var x = new Number(500);            
 
 
و یا حتی نتیجه می تواند بدتر باشد . اشیا را نمی توان مقایسه کرد :
 
 
 
=== Example ===
 
var x = new Number(500);            
 
 
 
 
var y = new Number(500);
 
var y = new Number(500);
  
 +
// (x == y) is false because objects cannot be compared
 +
</syntaxhighlight>{{نکته|type=|image=[[Image:OOjs_UI_icon_lightbulb-yellow.svg|38px]]|text=به تفاوت بین{{Code|code=(x==y)|lang=javascript}}و{{Code|code=(x===y)|lang=javascript}}توجه کنید.{{سرخط}}
 +
مقایسه کردن دو شیء در جاوااسکریپت همیشه باعث می‌شود که مقدار{{Code|code=false|lang=javascript}}بازگردانده شود.
 +
}}
  
// (x == y) is false because objects cannot be compared
+
==منابع آموزشی==
 
+
{{پانویس|چپ‌چین=بله}}
Note the difference between <code>(x==y)</code> and <code>(x===y)</code>.
+
{{منو افقی جاوااسکریپت}}
 
+
<references />
به تفاوت بین (x==y) و (x==y) توجه کنید .
 
 
 
Comparing two JavaScript objects will always return <code>false</code>.
 
 
 
مقایسه کردن دو شی در جاوااسکریپت همیشه باعث میشود که مقدار False باز گردانده شود .
 

نسخهٔ کنونی تا ‏۳ آذر ۱۳۹۸، ساعت ۱۱:۰۳

دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳JavaScript:قوانین و اصول اولیه زبان جاوااسکریپت
۴JavaScript:خروجی جاوااسکریپت
۵JavaScript:عبارت‌ها در جاوااسکریپت
۶JavaScript:شیوهٔ نوشتن (Syntax) عبارات یا دستورات در جاوااسکریپت
۷JavaScript:نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸JavaScript:متغیرها در جاوااسکریپت
۹JavaScript:عملگرهای جاوااسکریپت
۱۰JavaScript:عملگرهای ریاضی در جاوااسکریپت
۱۱JavaScript:عملگرهای مقداردهی در جاوااسکریپت
۱۲JavaScript:انواع داده‌ها در جاوااسکریپت
۱۳JavaScript:توابع در جاوااسکریپت
۱۴JavaScript:اشیاء (object) در جاوااسکریپت
۱۵JavaScript:رویدادها در جاوااسکریپت
۱۶JavaScript:رشته‌های متنی (string) در جاوااسکریپت
۱۷JavaScript:متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸JavaScript:اعداد در جاوااسکریپت
۱۹JavaScript:متدهای داده‌های عددی در جاوااسکریپت
۲۰JavaScript:آرایه‌ها در جاوااسکریپت
۲۱JavaScript:متدهای آرایه در جاوااسکریپت
۲۲JavaScript:مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳JavaScript:متدهای پیمایش آرایه در جاوااسکریپت
۲۴JavaScript:اشیاء تاریخ و زمان در جاوااسکریپت
۲۵JavaScript:فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶JavaScript:متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷JavaScript:متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸JavaScript:شی ریاضی (Math) در جاوااسکریپت
۲۹JavaScript:ایجاد عدد تصادفی در جاوااسکریپت
۳۰JavaScript:مقادیر بولین (Booleans) در جاوااسکریپت
۳۱JavaScript:عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲JavaScript:ساختار if else و else if در جاوااسکریپت
۳۳JavaScript:تکه کد Switch در جاوا اسکریپت
۳۴JavaScript:حلقه For در جاوااسکریپت
۳۵JavaScript:حلقه While در جاوااسکریپت
۳۶JavaScript:کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷JavaScript:تبدیل نوع داده‌ها در جاوااسکریپت
۳۸JavaScript:عملیات‌های بیتی در جاوااسکریپت
۳۹JavaScript:عبارات با قاعده در جاوااسکریپت
۴۰JavaScript:خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱JavaScript:Scope در جاوااسکریپت
۴۲JavaScript:Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳JavaScript:استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴JavaScript:کلمه کلیدی This در جاوااسکریپت
۴۵JavaScript:کلمه کلیدی Let در جاوااسکریپت
۴۶JavaScript:ثابت‌ها در جاوااسکریپت
۴۷JavaScript:تعریف توابع به صورت پیکان
۴۸JavaScript:کلاس‌ها در جاوااسکریپت
۴۹JavaScript:اشکال‌زدایی در جاوااسکریپت
۵۰JavaScript:راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱JavaScript:بهترین تمرینات جاوااسکریپت
۵۲JavaScript:اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳JavaScript:کارایی در جاوااسکریپت
۵۴JavaScript:کلمات رزرو شده در جاوااسکریپت
۵۵JavaScript:ورژن‌های جاوااسکریپت
۵۶JavaScript:ECMAScript 5 - JavaScript 5
۵۷JavaScript:ECMAScript 6 - ECMAScript 2015
۵۸JavaScript:جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱JavaScript:فرم‌ها در جاوااسکریپت
۲JavaScript:API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱JavaScript:اشیاء در جاوااسکریپت
۲JavaScript:ویژگی‌های اشیاء در جاوااسکریپت
۳JavaScript:متدهای اشیاء در جاوااسکریپت
۴JavaScript:روش‌های دسترسی به شیء در جاوااسکریپت
۵JavaScript:سازنده‌های شیء در جاوااسکریپت
۶JavaScript:شکل اصلی شیء در جاوااسکریپت
۷JavaScript:متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱JavaScript:تعریف تابع در جاوااسکریپت
۲JavaScript:پارامتر توابع در جاوااسکریپت
۳JavaScript:فراخوانی تابع در جاوااسکریپت
۴JavaScript:صدا کردن تابع در جاوااسکریپت
۵JavaScript:تابع Apply در جاوااسکریپت
۶JavaScript:بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱JavaScript:HTML DOM در جاوااسکریپت
۲JavaScript:متدهای HTML DOM در جاوااسکریپت
۳JavaScript:HTML DOM Document در جاوااسکریپت
۴JavaScript:عناصر HTML DOM در جاوااسکریپت
۵JavaScript:HTML DOM در جاوااسکریپت - تغییر محتوای HTML
۶JavaScript:DOM در جاوااسکریپت - تغییر CSS
۷JavaScript:انیمیشن در HTML DOM جاوااسکریپت
۸JavaScript:رویدادها در HTML DOM جاوااسکریپت
۹JavaScript:شنونده رویداد در HTML DOM جاوااسکریپت
۱۰JavaScript:پیمایش در HTML DOM جاوااسکریپت
۱۱JavaScript:عناصر (گره‌ها) HTML DOM در جاوااسکریپت
۱۲JavaScript:مجموعه‌های HTML DOM جاوااسکریپت
۱۳JavaScript:لیست گره‌ها در HTML DOM جاوااسکریپت
Browser BOM
۱JavaScript:پنجره جاوااسکریپت - مدل شیء مرورگر
۲JavaScript:پنجره صفحه نمایش در جاوااسکریپت
۳JavaScript:موقعیت پنجره در جاوااسکریپت
۴JavaScript:تاریخچه پنجره در جاوااسکریپت
۵JavaScript:ناوبری پنجره در جاوااسکریپت
۶JavaScript:جعبه پیغام جاوااسکریپت
۷JavaScript:رویدادهای زمان‌بندی شده در جاوااسکریپت
۸JavaScript:کوکی‌های جاوااسکریپت
AJAX
۱JavaScript:مقدمه‌ای بر AJAX
۲JavaScript:AJAX - شیء XMLHttpRequest
۳JavaScript:AJAX - ارسال یک درخواست به سرور
۴AJAX - پاسخ سرور
۵JavaScript:مثال‌های XML در AJAX
۶JavaScript:مثال‌های PHP در AJAX
۷JavaScript:مثال‌های ASP در AJAX
۸JavaScript:مثال پایگاه داده در AJAX
۹JavaScript:نرم‌افزارهای XML
۱۰JavaScript:مثال‌های AJAX
JSON
۱JavaScript:مقدمه‌ای بر JSON
۲JavaScript:شیوهٔ نوشتار JSON
۳JavaScript:JSON در برابر XML
۴JavaScript:انواع داده‌های مجاز در JSON
۵متد JSON.parse()
۶متد JSON.stringify()
۷JavaScript:اشیاء JSON
۸JavaScript:آرایه‌ها در JSON
۹JavaScript:PHP در JSON
۱۰JavaScript:HTML در JSON
۱۱JavaScript:JSONP
jQuery
۱JavaScript:جاوااسکریپت / انتخابگرهای DOM جی‌کوئری
۲JavaScript:جاوااسکریپت / عناصر HTML جی‌کوئری
۳JavaScript:جاوااسکریپت / استایل‌های CSS در جی‌کوئری
۴JavaScript:جاوااسکریپت / HTML DOM در جی‌کوئری

جاوااسکریپت فقط یک نوع از اعداد را می‌شناسد. اعداد می‌توانند به صورت اعشاری یا بدون اعشار نوشته شوند. [۱]

مثال

var x = 3.14; // A number with decimals
var y = 3; // A number without decimals

اعداد بسیار بزرگ یا بسیار کوچک را می‌توان به صورت عدد علمی نوشت:

مثال

var x = 123e5;    // 12300000
var y = 123e-5;   // 0.00123

تمامی اعداد در جاوااسکریپت همیشه از نوع ۶۴ بیت اعشاری هستند

برخلاف سایر زبان‌های برنامه‌نویسی، جاوااسکریپت انواع مختلفی از اعداد همانند integer , Short , long , floating-point و… را برای خود تعریف نکرده‌است.

اعداد در جاوااسکریپت تحت استاندارد IEEE754 و با دقت اعداد اعشاری بالا ذخیره می‌شوند.

در این نوع از ذخیره‌سازی اعداد در ۶۴ بیت ذخیره می‌گردند، جایی که اعداد (کسر) در بیت ۰ تا ۵۱ ذخیره می‌شود، توان عدد از بیت ۵۲ ام تا ۶۲ بیت و علامت، در بیت ۶۳ ام ذخیره می‌گردد.

مقدار یا به عبارتی عدد اصلی توان علامت
۵۲ بیت (از ۰ تا ۵۱) ۱۱ بیت (از ۵۲ تا ۶۲) یک بیت (بیت ۶۳)

دقت اعداد در جاوااسکریپت

اعداد صحیح (عددهای بدون اعشار یا کسری) تا ۱۵ رقم قابل محاسبه هستند.

مثال

var x = 999999999999999;   // x will be 999999999999999
var y = 9999999999999999;  // y will be 10000000000000000

بیشترین دقت اعشاری که پشتیبانی می‌شود ۱۷ رقم است، اما دقت این اعداد اعشاری همیشه %۱۰۰ نیست:

مثال

var x = 0.2 + 0.1;         // x will be 0.30000000000000004

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

مثال

var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3

جمع بستن اعداد و رشته‌های متنی


اگر شما دو عدد را با یکدیگر جمع ببندید، نتیجه نیز یک عدد خواهد بود:

مثال

var x = 10;
var y = 20;
var z = x + y;           // z will be 30 (a number)

اگر شما دو رشتهٔ متنی را با یکدیگر جمع ببندید، در نتیجه رشته‌ها یکدیگر چسبیده می‌شوند:

مثال

var x = "10";
var y = "20";
var z = x + y;           // z will be 1020 (a string)

اگر شما یک عدد را با یک رشتهٔ متنی جمع ببندید، نتیجه یک مجموعه از رشته‌ها خواهد بود:

مثال

var x = 10;
var y = "20";
var z = x + y;           // z will be 1020 (a string)

اگر شما یک رشتهٔ متنی و یک عدد را با یکدیگر جمع ببندید، نتیجه یک مجموعه از رشته‌ها خواهد بود:

مثال

var x = "10";
var y = 20;
var z = x + y;           // z will be 1020 (a string)

یک اشتباه که ممکن است رخ دهد این است که فکر کنید نتیجه تکه کد زیر برابر با ۳۰ می‌شود:

مثال

var x = 10;
var y = 20;
var z = "The result is: " + x + y;

یک اشتباه که ممکن است رخ دهد این است که فکر کنید نتیجه تکه کد زیر برابر با ۱۰۲۰۳۰ می‌شود:

مثال

var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;



عددهای متنی یا رشته‌ای

رشته‌های متنی در جاوااسکریپت می‌توانند محتوای عددی داشته باشند:

var x = 100;         // x is a number

var y = "100";       // y is a string

جاوااسکریپت در تمامی عملگرهای عددی رشته‌های متنی را به عدد تبدیل می‌کند: کد زیر کار خواهد کرد:

var x = "100";
var y = "10";
var z = x / y;       // z will be 10

کد زیر هم همانند کل بالا کار خواهد کرد:

var x = "100";
var y = "10";
var z = x * y;       // z will be 1000

و کد زیر هم کار خواهد کرد:

var x = "100";
var y = "10";
var z = x - y;       // z will be 90

اما کد زیر کار نخواهد کرد:

var x = "100";
var y = "10";
var z = x + y;       // z will not be 110 (It will be 10010)


کلمهٔ کلیدی NaN – عدد نباشد

NaNیک کلمهٔ کلیدی است که مشخص می‌کند یک عدد مطابق با قوانین داده‌های عددی در جاوااسکریپت همخوانی ندارد.

زمانی که سعی می‌کنید عملیات‌های ریاضی را با رشته‌های متنی غیر عددی انجام دهید نتیجهٔ عبارتNaN(یک عدد نیست) خواهد بود:

مثال

var x = 100 / "Apple";  // x will be NaN (Not a Number)

اما در صورتی که یک رشتهٔ متنی شامل مقادیر عددی شود، نتیجه یک عدد خواهدبود:

مثال

var x = 100 / "10";     // x will be 10

شما می‌توانید از تابعisNaN()که یک تابع global است استفاده کنید تا از عدد بودن یک مقدار یا عدد نبودن آن اطلاع پیدا کنید:

مثال

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number

بهNaNنگاه کنید. اگر شما از کلمهٔNaNدر یک عملیات ریاضی استفاده کنید، نتیجه نیز برابر با عبارتNaNخواهد بود:

مثال

var x = NaN;
var y = 5;
var z = x + y;         // z will be NaN

و یا نتیجه یک رشتهٔ متنی به هم چسبیده خواهد بود:

مثال

var x = NaN;
var y = "5";
var z = x + y;         // z will be NaN5

کلمهٔ کلیدیNaNاز نوع عددی است: اگر نوع این کلمه را با کدtypeof NaN بررسی کنیم خروجی نوع عددی خواهد بود:

مثال

typeof NaN;            // returns "number"

بی‌نهایت

مقدارInfinityیا بی‌نهایت (یا منفی بی‌نهایت-Infinity) مقداری است که جاوااسکریپت زمانی که شما محاسبه‌ای انجام دهید که حاصل آن از بزرگترین عدد ممکن بیشتر باشد.

مثال

var myNumber = 2;
while (myNumber != Infinity) {   // Execute until Infinity
  myNumber = myNumber * myNumber;
}

تقسیم بر صفر نیز موجب بروزInfinityمی‌شود:

مثال

var x =  2 / 0;       // x will be Infinity
var y = -2 / 0;       // y will be -Infinity

مقدارInfinityیک عدد است، اگر برای این مقدار از عملگرtypeof Infinityاستفاده کنید مقدار بازگشتی عملگرtypeof، نوع عددی (number) خواهد بود.

مثال

typeof Infinity;     // returns "number"

عددهای هگزادسیمال (مبنای ۱۶)

مفسر جاوااسکریپت اگر عددی با0xشروع شود آن را به عنوان عدد هگزادسیمال (مبنای ۱۶) در نظر می‌گیرد.

مثال

var x = 0xFF;        // x will be 255


به صورت پیشفرض، جاوااسکریپت اعداد را بر مبنای ۱۰ نمایش می‌دهد.

اما شما می‌توانید از متدtoString()برای چاپ اعداد مبنای ۲ تا مبنای ۳۶ استفاده کنید.

اعداد هگزادسیمال مبنای ۱۶ هستند. اعداد دسیمال مبنای ۱۰ هستند. اعداد اکتال (به انگلیسی: Octal) مبنای ۸ هستند. اعداد باینری نیز مبنای ۲ هستند.

مثال

var myNumber = 32;
myNumber.toString(10);  // returns 32
myNumber.toString(32);  // returns 10
myNumber.toString(16);  // returns 20
myNumber.toString(8);   // returns 40
myNumber.toString(2);   // returns 100000

اعداد می‌توانند اشیاء باشند.

به صورت عادی اعداد در جاوااسکریپت اعدادی از نوع primitve (به فارسی: اصلی) هستند که از عبارت‌های ساده تشکیل می‌شوند:

var x = 123;

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

var y = new Number(123);

مثال

var x = 123;
var y = new Number(123);

// typeof x returns number
// typeof y returns object


زمانی که از عملگر==استفاده می‌کنید، اعداد برابر با یکدیگر برابرند:

مثال

var x = 500;             
var y = new Number(500);

// (x == y) is true because x and y have equal values

زمانی که از=== استفاده می‌کنید، اعداد برابر، با یکدیگر برابر نیستند، زیرا عملگر===عملوندهای خود را از نظر برابری مقدار و نوع بررسی می‌کند.

مثال

var x = 500;             
var y = new Number(500);

// (x === y) is false because x and y have different types

و یا حتی نتیجه می‌تواند بدتر باشد. اشیاء را نمی‌توان مقایسه کرد:

مثال

var x = new Number(500);             
var y = new Number(500);

// (x == y) is false because objects cannot be compared


منابع آموزشی