اعداد جاوااسکریپت
- پچھلے بجلی جسٹا اسکریپٹ جی ایس ایس تمپل
- پائیدار بجلی جسٹا اسکریپٹ بیگ اینگل
JavaScript 只有一种数值类型。
书写数值时带不带小数点均可。
جسٹسکریپٹ نمائشات
JavaScript کا نمبر لکھنا سارنوئی نقطہ سے بغیر بھی جاسکتا ہے اور سارنوئی نقطہ سے بھی جاسکتا ہے:
مثال
var x = 3.14; // نقطہ والا نمبر var y = 3; // بغیر نقطہ کا نمبر
بسیار بڑے یا بہت چھوٹے اعداد کو سائنس کی تقسیم کے ذریعے لکھا جاسکتا ہے:
مثال
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript کا نمبر ہمیشہ 64 بیٹ کا فلوٹنگ پوائنٹ ہوتا ہے
بسیار سے متعدد دیگر پروگرامنگ زبانوں سے متفاوت، JavaScript نمبروں کی مختلف اقسام کا تعریف نہیں کرتا، مثلاً پورا عدد، چھوٹا، بڑا، فلوٹنگ پوائنٹ وغیرہ.
JavaScript کا نمبر ہمیشہ دو دقت کا فلوٹنگ پوائنٹ استعمال کرتا ہے، یہ بین الاقوامی IEEE 754 معیار پر مبنی ہے.
اس فارمات میں 64 بیٹ استعمال کیے جاتے ہیں، جس میں 0 سے 51 بیٹ کو نمبر (جز) استعمال کیا جاتا ہے، 52 سے 62 بیٹ کو exponent استعمال کیا جاتا ہے اور 63 بیٹ کو سیگن استعمال کیا جاتا ہے:
قیمتی (یا fraction/mantissa) | انگریزی میں exponent | سیگن |
---|---|---|
52 بیٹ (0 - 51) | 11 بیٹ (52 - 62) | 1 بیٹ (63) |
دقت
پورا عدد (انگریزی میں exponent یا scientific notation کا استعمال نہ کرتے ہوئے) 15 دفعات تک دقت سے محفوظ رہتا ہے.
مثال
var x = 999999999999999; // x جواز دیکھیں گا 999999999999999 var y = 9999999999999999; // y جواز دیکھیں گا 10000000000000000
اعداد کا سب سے بڑا عدد 17 دفعات کا ہوتا ہے، لیکن فلوٹنگ پوائنٹ کا جبران ہمیشہ 100% دقت سے نہیں ہوتا:
مثال
var x = 0.2 + 0.1; // x جواز دیکھیں گا 0.30000000000000004
جمع اور تقسیم استعمال کرکے سوال کا حل کرسکتا ہے:
مثال
var x = (0.2 * 10 + 0.1 * 10) / 10; // x جواز دیکھیں گا 0.3
اعداد اور سٹرنگ کو جمع دینا
اخطار !!
JavaScript کا جمع اور جوڑنا (+) آپریٹر استعمال کرتا ہے.
اعداد کو جمع دینا، سٹرنگ کو جوڑنا.
اگر آپ دو عدد کو جمع دینا چاہیئے تو نتیجہ ایک عدد ہوگا:
مثال
var x = 10; var y = 20; var z = x + y; // z جواز دیکھیں گا 30 (ایک عدد)
اگر دو سٹرنگ کو جمع دینا چاہیئے تو نتیجہ ایک سٹرنگ کو جوڑنا ہوگا:
مثال
var x = "10"; var y = "20"; var z = x + y; // z 1020 (رشته) خواهد بود
اگر آپ ایک عدد اور ایک سٹرنگ کو جمع دینا چاہیئے تو نتیجہ بھی سٹرنگ کو جوڑنا ہوگا:
مثال
var x = 10; var y = "20"; var z = x + y; // z جواز دیکھیں گا 1020 (ایک سٹرنگ)
اگر شما یک رشته و یک عدد را به هم اضافه کنید، نتیجه پیوند رشتهها نیز خواهد بود:
مثال
var x = "10"; var y = 20; var z = x + y; // z 1020 (رشته) خواهد بود
اشتباه رایج این است که فکر میکنند نتیجه باید 30 باشد:
مثال
var x = 10; var y = 20; var z = "The result is: " + x + y;
اشتباه رایج این است که فکر میکنند نتیجه باید 102030 باشد:
مثال
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript از چپ به راست به ترتیب اجرا میشود.
چون x و y هر دو اعداد هستند، 10 + 20 جمع میشوند.
چون z یک رشته است، 30 + "30" پیوند شده است.
رشته عددی
رشتههای JavaScript میتوانند حاوی محتوای عددی باشند:
var x = 100; // x یک عدد است var y = "100"; // y یک رشته است
در همه عملیات عددی، JavaScript سعی میکند رشتهها را به اعداد تبدیل کند:
این مثال به این شکل اجرا میشود:
var x = "100"; var y = "10"; var z = x / y; // z 10 خواهد بود
این مثال نیز به این شکل اجرا میشود:
var x = "100"; var y = "10"; var z = x * y; // z 1000 خواهد بود
این مثال به این شکل اجرا میشود:
var x = "100"; var y = "10"; var z = x - y; // z 90 خواهد بود
اما این مثال مانند مثال بالا اجرا نمیشود:
var x = "100"; var y = "10"; var z = x + y; // z 110 نخواهد بود (بلکه 10010 خواهد بود)
در آخرین مثال، JavaScript از عملگر + برای پیوند رشتهها استفاده کرده است.
NaN - غیر عدد
NaN
یک کلمه ذخیره شده JavaScript است که نشان میدهد یک عدد شماره نیست.
تلاش برای انجام تقسیم با یک رشته غیر عددی به NaN (Not a Number) منجر میشود:
مثال
var x = 100 / "Apple"; // x NaN (Not a Number) خواهد بود
اما اگر یک رشته شامل عدد باشد، نتیجه شماره خواهد بود:
مثال
var x = 100 / "10"; // x 10 خواهد بود
شما میتوانید از تابع جهانی JavaScript استفاده کنید isNaN()
برای تعیین اینکه یک مقدار شماره است یا خیر:
مثال
var x = 100 / "Apple"; isNaN(x); // باتریجی بپرسد که x شماره نیست
مواظب باشید NaN
خواهد بود. اگر در محاسبات ریاضی از NaN
، پس نتیجه نیز NaN
:
مثال
var x = NaN; var y = 5; var z = x + y; // z NaN خواهد بود
نتیجه ممکن است به صورت
مثال
var x = NaN; var y = "5"; var z = x + y; // z NaN5 خواهد بود
NaN
اعداد است،typeof NaN
برگشت میدهد number
:
مثال
typeof NaN; // برگرداند "number"
Infinity
Infinity
(یا -Infinity
) مقدار برگشتی است که JavaScript در محاسبات عددی زمانی که از محدوده ممکن فراتر میرود برگشت میدهد.
مثال
var myNumber = 2; while (myNumber != Infinity) { // تا زمان Infinity اجرا میشود myNumber = myNumber * myNumber; }
تقسیم بر صفر (صفر) نیز منجر به Infinity
:
مثال
var x = 2 / 0; // x Infinity خواهد بود var y = -2 / 0; // y -Infinity خواهد بود
Infinity
اعداد است:typeOf Infinity
برگشت میدهد number
.
مثال
typeof Infinity; // برگرداند "number"
هگزادسانی
JavaScript اعداد با پیشوند 0x
اعداد متغیرهای عددی به عنوان هگزادسانی تفسیر میشوند.
مثال
var x = 0xFF; // x 255 خواهد بود.
هرگز اعداد را با پیشوند صفر بنویسید (مثل 07).
برخی از نسخههای JavaScript اعداد با پیشوند صفر را به عنوان هگزادسانی تفسیر میکنند.
به طور پیشفرض، JavaScript اعداد را به عنوان اعشار دودسانی نمایش میدهد.
اما شما میتوانید از toString()
این روش اعداد را به شکل شانزدهسانی، هگزادسانی یا دودسانی نمایش میدهد.
مثال
var myNumber = 128; myNumber.toString(16); // برگرداند 80 myNumber.toString(8); // برگرداند 200 myNumber.toString(2); // برگرداند 10000000
اعداد میتوانند اشیاء باشند
مجموعه جوهری JavaScript اعداد معمولاً از طریق مقدارهای صریح ایجاد میشوند: var x = 123
但是也可以通过关键词 new
定义为对象:var y = new Number(123)
مثال
var x = 123; var y = new Number(123); // typeof x 返回 number // typeof y 返回 object
请不要创建数值对象。这样会拖慢执行速度。
new
关键词使代码复杂化,并产生某些无法预料的结果:
جب ==
کم کاری واری کے ساتھ، کیونکہ
مثال
وار x = 500; وار y = نیو نمبر(500); // (x == y) کی واری ترو کی ہے، کیونکہ x اور y کی واری ایک سے ایک سے مساوی ہیں
جب ===
کم کاری واری کے بعد، کیونکہ ===
آپریٹر کو قسم اور واری دونوں کی ضرورت ہوتی ہے۔
مثال
وار x = 500; وار y = نیو نمبر(500); // (x === y) کی واری فالس ہے، کیونکہ x اور y کی قسم مختلف ہیں
حتی بدتر بھی۔ اوبجیکٹ قابل مقایسه نہیں ہیں:
مثال
وار x = نیو نمبر(500); وار y = نیو نمبر(500); // (x == y) کی واری فالس ہے، کیونکہ اوبجیکٹ قابل مقایسه نہیں ہیں
جسٹا اسکریپٹ اوبجیکٹ نہیں ہموار کرسکتا۔
- پچھلے بجلی جسٹا اسکریپٹ جی ایس ایس تمپل
- پائیدار بجلی جسٹا اسکریپٹ بیگ اینگل