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

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

نسخهٔ ‏۱۰ آبان ۱۳۹۸، ساعت ۱۴:۵۷

JavaScript has only one type of number. Numbers can be written with or without decimals.

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

Example

var x = 3.14; // A number with decimals

var y = 3; // A number without decimals

Extra large or extra small numbers can be written with scientific (exponent) notation:

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

Example

var x = 123e5; // ۱۲۳۰۰۰۰۰

var y = 123e-۵; // ۰٫۰۰۱۲۳

JavaScript Numbers are Always 64-bit Floating Point

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

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:

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

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

Precision

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

Integers (numbers without a period or exponent notation) are accurate up to 15 digits.

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

Example

var x = 999999999999999; // x will be ۹۹۹۹۹۹۹۹۹۹۹۹۹۹۹

var y = 9999999999999999; // y will be ۱۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰

The maximum number of decimals is 17, but floating point arithmetic is not always 100% accurate:

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

Example

var x = 0.2 + 0.1; // x will be ۰٫۳۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۴

To solve the problem above, it helps to multiply and divide:

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

Example

var x = (۰٫۲ * ۱۰ + ۰٫۱ * 10) / 10; // x will be ۰٫۳

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 = ۱۰;

var y = ۲۰;

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

If you add two strings, the result will be a string concatenation:

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

Example

var x = "۱۰";

var y = "۲۰";

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

If you add a number and a string, the result will be a string concatenation:

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

Example

var x = ۱۰;

var y = "۲۰";

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

If you add a string and a number, the result will be a string concatenation:

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

Example

var x = "۱۰";

var y = ۲۰;

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

A common mistake is to expect this result to be 30:

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

Example

var x = ۱۰;

var y = ۲۰;

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

A common mistake is to expect this result to be 102030:

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

Example

var x = ۱۰;

var y = ۲۰;

var z = "۳۰";

var result = x + y + z;

The JavaScript interpreter works from left to right.

مفسر جاوااسکریپت از سمت چپ به راست کار می‌کند.

First 10 + 20 is added because x and y are both numbers.

ابتدا ۲۰+۱۰ با یک دیگر جمع می‌شود زیرا هر دو یعنی x و y، عدد هستند.

Then 30 + "30" is concatenated because z is a string.

سپس عبارت " ۳۰ " + ۳۰ به یک دیگر می‌چسبند زیرا که 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:

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

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

var x = "۱۰۰";

var y = "۱۰";

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

This will also work:

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

var x = "۱۰۰";

var y = "۱۰";

var z = x * y; // z will be 1000

And this will work:

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

var x = "۱۰۰";

var y = "۱۰";

var z = x - y; // z will be 90

But this will not work:

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

var x = "۱۰۰";

var y = "۱۰";

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

In the last example JavaScript uses the + operator to concatenate the strings.

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

NaN - Not a Number

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

NaN 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 NaN (Not a Number):

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

Example

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

However, if the string contains a numeric value , the result will be a number:

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

Example

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

You can use the global JavaScript function isNaN() to find out if a value is a number:

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

Example

var x = 100 / "Apple";

isNaN(x); // returns true because x is Not a Number

Watch out for NaN. If you use NaN in a mathematical operation, the result will also be NaN:

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

Example

var x = NaN;

var y = ۵;

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

Or the result might be a concatenation:

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

Example

var x = NaN;

var y = "۵";

var z = x + y; // z will be NaN5

NaN is a number: typeof NaN returns number:

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

Example

typeof NaN; // returns "number"

Infinity

بی‌نهایت

Infinity (or -Infinity) is the value JavaScript will return if you calculate a number outside the largest possible number.

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

Example

var myNumber = ۲;

while (myNumber != Infinity) { // Execute until Infinity

myNumber = myNumber * myNumber;

}

Division by 0 (zero) also generates Infinity:

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

Example

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

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

Infinity is a number: typeof Infinity returns number.

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

Example

typeof Infinity; // returns "number"

Hexadecimal

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

JavaScript interprets numeric constants as hexadecimal if they are preceded by 0x.

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

Example

var x = 0xFF; // x will be ۲۵۵

Never write a number with a leading zero (like 07).

هیچ وقت عددی را با صفر شروع نکنید. (همانند ۰۷).

Some JavaScript versions interpret numbers as octal if they are written with a leading zero.

برخی از ورژنهای مفسر جاوااسکریپت اگر یک عدد با صفر شروع شود آن را در مبنای ۸ یا octal در نظر می‌گیرند.

By default, JavaScript displays numbers as base 10 decimals.

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

But you can use the toString() method to output numbers from base 2 to base 36.

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

Hexadecimal is base 16. Decimal is base 10. Octal is base 8. Binary is base 2.

اعداد هگزا دسیمال مبنای ۱۶ هستند. اعداد دسیمال مبنای ۱۰ هستند. اعداد اکتال یا octal مبنای ۸ هستند. اعداد باینری نیز مبنای دو هستند.

Example

var myNumber = ۳۲;

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

Numbers Can be Objects

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

Normally JavaScript numbers are primitive values created from literals:

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

var x = 123;

But numbers can also be defined as objects with the keyword new:

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

var y = new Number(123);

Example

var x = ۱۲۳;

var y = new Number(123);

// typeof x returns number

// typeof y returns object

Do not create Number objects. It slows down execution speed.

اعداد را به صورت اشیا تعریف نکنید. این امر موجب کند شدن اجرای کد می‌شود.

The new keyword complicates the code. This can produce some unexpected results:

کلمه کلیدی new موجب پیچیده شدن کد شما می‌شود. این امر می‌تواند موجب بروز خطاهای ناخواسته شود:

When using the == operator, equal numbers are equal:

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

Example

var x = ۵۰۰;

var y = new Number(500);

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

When using the === operator, equal numbers are not equal, because the === operator expects equality in both type and value.

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

Example

var x = ۵۰۰;

var y = new Number(500);

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

Or even worse. Objects cannot be compared:

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

Example

var x = new Number(500);

var y = new Number(500);

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

Note the difference between (x== y) and (x ===y).

به تفاوت بین (x== y) و (x ==y) توجه کنید.

Comparing two JavaScript objects will always return false.

مقایسه کردن دو شی در جاوااسکریپت همیشه باعث می‌شود که مقدار False بازگردانده شود.