‎‎اعداد در جاوااسكريپتJavaScript Numbers -‎

Previous >    <Next  

‎جاوااسكريپت فقط داراي يك نوع عدد ميباشد، اعداد راميتوان بدون نقطه اعشاري يا بانقطه اعشاري ‎نوشت.

‎‎مثال ـ نمونه اعداد

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

--(go to editor for change code and run)

‎اعداد بسيار بزرگ يا بسيار كوچك را ميتوان با نماد علمي‎(‎e‎)‎ نمايش ‎داده يا نوشت.

‎‎مثال ـ اعداد با نماد علمي

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

--(go to editor for change code and run)

‎‎اعداد جاوااسكريپت هميشه64 بيتي شناور هستند‎(64-‎bit Floating Point)

‎برعكس بيشتر زبانهاي برنامه نويسي كه مشابه نوعinteger, short, long,floating piont وغيره ‎دارند.

‎اعدادجاوااسكريپت هميشه بعنوان مميزشناور بادقت مضاعف مطابق استانداردIEE 754 بين المللي ‎ذخيره مي شوند.

‎اين فرم اعداد در64بيت ذخيره ميگردند، كه در آن مانتيس در بيت هاي 0 تا51 ،توان بيت هاي52 تا ‎62‎وعلامت بيت63

‎‎دقت اعداد صحيحInteger Percisin -‎

‎‎عدد صحيح‎(Integer Number)‎ بدون نقطه اعشاري وبدون توان تا پانزده رقم دقت دارند.

‎‎مثال ـ نمايش دقت اعداد صحيح

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

--(go to editor for change code and run)

‎‎حداكثر تعدادارقام اعشاري17 رقم ا.ست.

‎‎اعداد اعشاري شناورFloating Precision -‎

‎‎محاسبات اعداد اعشاري هميشه داراي‎100%‎ دقت نيست .

‎‎مثال ـ اعداد اعشاري

let x = 0.2 + 0.1;

--(go to editor for change code and run)

‎‎اگر نتيجه اجرا را مشاهده كنيد ، نتيجه دقيق نيست ونتيجه بصورت زيراست.

0.2+0.1=0.30000000000000004

‎‎براي رفع مشكل بايد اعداد در10ضرب وحاصل تفسيم بر 10 شود .مطابق زير

let x = (0.2 * 10 + 0.1 * 10) / 10;

--(go to editor for change code and run)

‎‎جمع كردن رشته ها واعدادAdding Nuumbers and Strings -‎

‎اخطار ـ در جاوااسكريپت عملگر‎+‎ براي دو عمل جمع اعداد وچسباندن رشته ها ‎استفاده ميشود.

‎‎اگر دوعدد را جمع كنيد، حاصل جمع اعداد، نوع عددي ميشود.

‎‎مثال ـ جمع اعداد

let x = 10;
let y = 20;
let z = x + y;

--(go to editor for change code and run)

‎‎اگر دو رشته را با هم جمع كنيد حاصل رشته اي با چسباندن آنها بدست مي آيد.

‎‎مثال ـ جمع رشته ها

let x = "10";
let y = "20";
let z = x + y;

--(go to editor for change code and run)

‎‎اگر عددي با رشته اي جمع شود، عدد بفرم رشته با رشته باهمconcatenate ميشوند .

‎‎مثال ـ جمع عدد بارشته

let x = 10;
let y = "20";
let z = x + y;

--(go to editor for change code and run)

‎‎اگر رشته با عدد جمع شود، حاصل رشته اي با چسباندن رشته به عدد بدست مي آيد.

‎‎مثال ـ جمع رشته باعدد.

let x = "10";
let y = 20;
let z = x + y;

--(go to editor for change code and run)

‎‎يك برداشت اشتباه عمومي اينست كه نتيجه30 مي شود.

‎‎مثال ـ جمع رشته با دوعدد.

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

--(go to editor for change code and run)

‎‎مثال ـ برداشت نادرست كه نتيجه‎102030‎ ميشود .

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

--(go to editor for change code and run)

‎‎جاوااسكريپت عمليات را از چپ براست تفسير واجرا ميكند.

‎مرحله اول ـ‎10+20‎ جمع انجام ميشود، چون متغيرهاي x و y هردو عددي هستند .حاصل ‎30‎‎ميشود .

‎مرحله دوم ـ‎30+‎"30‎"‎ انجام ميشود، چون z رشته است آنها بهم چسبانده ميشوند .نتيجه ‎3030‎‎ميباشد .

‎‎رشته هاي عدديNumeric Strings -‎

‎‎رشته ها در جاوااسكريپت مي توانند داراي محتوي عددي باشند.

let x = 100;         // x is a number

let y = "100";   // numeric string

‎‎جاوااسكريپت سعي ميكند رشته هارا در تمام عمليات عددي بجز جمع تبديل به عدد نمايد.

‎‎مثال ـ نمونه زير كار ميكند.

let x = "100";
let y = "10";
let z = x / y;

--(go to editor for change code and run)

‎‎مثال ـ اين هم كارميكند.

let x = "100";
let y = "10";
let z = x * y;

--(go to editor for change code and run)

‎‎مثال ـ اين عمل تفريق هم كارميكند.

let x = "100";
let y = "10";
let z = x - y;

--(go to editor for change code and run)

‎‎مثال ـ اين عمل جمع كار ميكند اما بعنوان جمع دوعدد خير

let x = "100";
let y = "10";
let z = x + y;

--(go to editor for change code and run)

‎‎در مثال فوق جاوااسكريپت ازعملگر‎+‎ براي پيوستن رشته ها استفاده مي نمايد .

‎NaN‎عدد نيست NaN -‎Not a Number -‎

‎‎NaN‎‎يك كلمه رزرو شده در جاوااسكريپت است ونشانه يك عدد غير قانوني است .

‎‎تلاش براي انجام محاسيات با يك رشته غير عددي منجر به نتيجهNaN ميشود .

‎‎مثال ـ نتيجه عبارت محاسباتيNaNاست .

let x = 100 / "Apple";

--(go to editor for change code and run)

‎‎چنانچه رشته‎"Apple‎"‎عددي ميبود، نتيجه عددي ميباشد .

‎‎مثال ـ تقسيم فوق با رشته عددي

let x = 100 / "10";

--(go to editor for change code and run)

‎‎ميتوان ازتابع‎isNaN( )‎ براي بررسي اعداد غيرقانوني استفاده كرد .

‎‎مثال ـ استفاده ازتابع‎isNan( )

let x = 100 / "Apple";
isNaN(x);

--(go to editor for change code and run)

‎‎مراقب استفاده ازNaN باشيد، اگر درعبارت محاسباتي از آن استفاده كنيد، نتيجه NaN ميباشد .

‎‎مثال ـ استفادهNaN در عبارت محاسباتي

let x = NaN;
let y = 5;
let z = x + y;

--(go to editor for change code and run)

‎‎مثال ـ جمعNaN با رشته

let x = NaN;
let y = "5";
let z = x + y;

--(go to editor for change code and run)

NaN‎‎نوع عددي است ، اگر با‎typeof‎ نوع آن بررسي شود ، نتيجه number‎ميباشد .

‎‎مثال ـ بررسيNaN با typeof

typeof NaN;

--(go to editor for change code and run)

‎‎عدد نامحدودInfinity -‎

infinity‎‎يا ‎-‎infinity‎ مقادير جاوااسكريپت هستند، كه در صورتيكه ‎نتيجه محاسبات خارج از ظريفيت نگهداري اعداد باشد، برگشت ميشود .بعبارتي آن بينهايت ‎جاوااسكريپت است.

‎‎نتيجه نهائي محاسبه حلقه به‎ مثال -infinity ختم ميشود .

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

--(go to editor for change code and run)

‎‎مثال ـ تقسيم برعدد صفرهم داراي نتيجه‎infinity

let x =  2 / 0;
let y = -2 / 0;

--(go to editor for change code and run)

infinity‎‎در جاوااسكرپت بعنوان عدد شناخته ميشود، اگر با‎typeof‎ ‎آنرا ارزيابي كنيم نتيجه نوع عددي است.

‎‎مثال ـ ارزيابي‎infinity

typeof Infinity;

--(go to editor for change code and run)

‎‎اعداد هگزادسيمالHexadecimal -‎

‎جاوااسكريپت اعداد ثابت بفرم هگزا را در صورتيكه عدد بدنبال‎0x‎ ‎قرار گيرند، تفسير مي نمايد.

‎‎مثال ـ نمونه عدد هگزا

let x = 0xFF;

--(go to editor for change code and run)

‎هرگز عددي را با‎0 مثل‎07‎ شروع نكنيد، ممكن است بعضي از نسخه هاي ‎جاوااسكريپت آنرا عدد مبناي هشت تفسيركنند5.

‎‎بصورت پيش فرض جاوااسكريپت عدد را در مبناي ده نمايش ميدهد.

‎اما ميتوان با متد‎toString( )‎ براي خروجي درمبناهاي2 تا 36 تبديل ‎نمود.

‎‎مبناهاي معروف مطابق زيرند:

‎‎مثال ـ تبدبل عدد به مبناي هاي مختلف

let myNumber = 32;
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(12);
myNumber.toString(10);
myNumber.toString(8);
myNumber.toString(2);

--(go to editor for change code and run)

‎‎اعداد جاوااسكريپت به عنوان شئJavaScript Numbers as Objects -‎

‎‎معمولا در جاواسكريپت اعداد از طربق اعدا معمولي يا ليترال، ايجاد ميشوند .نمونه زير:

let x = 123;

‎‎اما اعداد ميتوانند با كي ورد‎new‎ بعنوان يك شئ تعريف شوند .نمونه زير :

let y = new Number(123);

‎‎مثال ـ تعريف عدد وشئ عددي

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

--(go to editor for change code and run)

‎‎شئ عددي ايجاد نكنيد .چون كي وردnew داراي كد پيچيده ايست، و سرعت اجرا را كاهش ميدهد.

‎‎همچنين شئ هاي عددي ميتوانند در عمليات نتايج دور از انتظار بوجود آورند.

‎هنگاميكه از عملگر‎(‎==‎)‎ برايx وy ،استفاده شود ‎نتيجه در مثال زير تساوي است.

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


--(go to editor for change code and run)

‎‎هنگاميكه عملگر‎(‎===‎)‎ براي دومتغير اعمال مي شود، نتيجه نامساويست

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

--(go to editor for change code and run)

‎به تفاوت مابين دوعملگر‎(‎==‎)‎ و‎(‎===‎)‎ ‎توجه كنيد.

‎‎مثال ـ نتيجه‎(x==y)‎ درست است يا نادرست

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

--(go to editor for change code and run)

‎‎مثال ـ نتيجه‎(x===y)‎ درست است يا نادرست

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

--(go to editor for change code and run)


Previous >    <Next