JS sonlar
Number turlari
JavaScript-da faqat bitta Number turi mavjud.
Numberlar o‘nlik kasr bilan yoki kasrsiz yozilishi mumkin.
Misol
let x = 3.14; // A number with decimals
let y = 3; // A number without decimals
Juda katta yoki juda kichik Numberlar ilmiy (eksponent) ko‘rinishda yozilishi mumkin:
JavaScript Numberlar har doim 64-bitli suzuvchi nuqtali (Floating Point) hisoblanadi
Boshqa ko‘plab dasturlash tillaridan farqli o‘laroq, JavaScript har xil son turlarini (masalan, int, short, long, float) alohida ajratmaydi.
JavaScript raqamlari har doim xalqaro IEEE 754 standartiga muvofiq ikki tomonlama aniqlikdagi suzuvchi nuqtali Numberlar sifatida saqlanadi. Ushbu format raqamlarni 64 bitda saqlaydi, bu yerda raqam (kasr) 0 dan 51 gacha, ko‘rsatkich 52 dan 62 gacha va belgi 63 bitda saqlanadi:
| Qiymat (aka Fraction/Mantissa) | Ko‘rsatkich | Imzo |
|---|---|---|
| 52 bit (0 - 51) | 11 bit (52 - 62) | 1 bit (63) |
Ko‘pgina dasturlash tillarida ko‘plab Numberlar turlari mavjud:
Butun sonlar (butun sonlar): bayt (8-bit), qisqa (16-bit), int (32-bit), uzun (64-bit)
Haqiqiy Numberlar (suzuvchi nuqta): float (32-bit), double (64-bit).
Javascript raqamlari har doim ikki barobar (64-bitli suzuvchi nuqta).
Butun son aniqligi
Butun sonlar (nuqtasiz yoki ko‘rsatkich belgisiz Numberlar) 15 tagacha aniqlik qiladi.
Misol
let x = 999999999999999; // x will be 999999999999999
let y = 9999999999999999; // y will be 10000000000000000
O‘zingiz sinab ko‘ring »
O‘nli kasrlarning maksimal soni - 17.
Suzuvchi aniqlik
Suzuvchi nuqta arifmetikasi har doim ham 100% aniq emas:
let x = 0.2 + 0.1;
Yuqoridagi muammoni hal qilish uchun u ko‘paytirish va bo‘lishga yordam beradi:
let x = (0.2 * 10 + 0.1 * 10) / 10;
O‘zingiz sinab ko‘ring »
Sonlar va stringlarni qo‘shish
Diqqat!
JavaScript qo‘shish va birlashtirish uchun + operatoridan foydalanadi.
Raqamlar qo‘shiladi. Stringlar birlashtiriladi.
Agar siz ikkita raqam qo‘shsangiz, natijada raqam bo‘ladi:
Agar siz ikkita String qo‘shsangiz, natijada string birikmasi bo‘ladi:
Agar siz raqam va String qo‘shsangiz, natijada string birikmasi bo‘ladi:
Agar siz String va raqam qo‘shsangiz, natijada string birikmasi bo‘ladi:
Keng tarqalgan xato - bu natija 30 bo‘lishini kutish:
Keng tarqalgan xato bu natijani 102030 bo‘lishini kutishdir:
JavaScript tarjimoni chapdan o‘ngga ishlaydi.
Birinchi 10 + 20 qo‘shiladi, chunki x va y ikkala raqamdir.
Keyin 30 + "30" birlashtiriladi, chunki z — string.
Raqamli Stringlar
JavaScript Stringlar raqamli tarkibga ega bo‘lishi mumkin:
let x = 100; // x is a number
let y = "100"; // y is a
string
JavaScript barcha sonli amallarda stringlarni sonlarga aylantirishga harakat qiladi:
Bu ishlaydi:
let x = "100";
let y = "10";
let z = x / y;
Bu ham ishlaydi:
let x = "100";
let y = "10";
let z = x * y;
Va bu ishlaydi:
let x = "100";
let y = "10";
let z = x - y;
Ammo bu ishlamaydi:
let x = "100";
let y = "10";
let z = x + y;
Oxirgi misolda JavaScript stringlarni birlashtirish uchun + operatoridan foydalanadi.
NaN - Raqam emas
NaN JavaScript-da saqlangan so‘z bo‘lib, raqam qonuniy raqam emasligini bildiradi.
Raqamli bo‘lmagan String bilan arifmetika qilishga urinish NaN (raqam emas) ga olib keladi:
Biroq, agar String raqamli bo‘lsa, natija raqam bo‘ladi:
Qiymat raqam emasligini bilish uchun global JavaScript isNaN() funksiyasidan foydalanishingiz mumkin:
NaNga e’tibor bering. Agar siz matematik operatsiyada NaN dan foydalansangiz, natija ham NaN bo‘ladi:
Yoki natija NaN5 kabi birlashma bo‘lishi mumkin:
NaN son hisoblanadi: typeof NaN number qaytaradi:
Cheksizlik
Infinity (yoki -Infinity) - agar siz eng katta raqamdan tashqari raqamni hisoblasangiz, JavaScript qaytariladigan qiymatdir.
Misol
let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
myNumber = myNumber * myNumber;
}
O‘zingiz sinab ko‘ring »0 (nol) ga bo‘linish ham Infinity hosil qiladi:
Infinity son hisoblanadi: typeof Infinity number qaytaradi.
O‘n oltilik
JavaScript raqamli konstantalarni, agar ular oldida 0x bo‘lsa, o‘n oltilik deb izohlaydi.
Hech qachon bosh nol bilan raqam yozmang (masalan, 07). Ba’zi JavaScript versiyalari, agar ular bosh nol bilan yozilgan bo‘lsa, ularni sakkizlik deb izohlaydi.
Odatiy bo‘lib, JavaScript raqamlarni 10 ta asosiy kasr sifatida ko‘rsatadi.
Lekin siz 2 ta bazadan 36 tagacha raqamlarni chiqarish uchun toString() usulidan foydalanishingiz mumkin.
O‘n oltilik asos 16. O‘nlik 10 asos. Sakkizlik asos 8. Ikkilik asos 2.
Misol
let myNumber = 32;
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(12);
myNumber.toString(10);
myNumber.toString(8);
myNumber.toString(2);
O‘zingiz sinab ko‘ring »
JavaScript raqamlari obyektlar sifatida
Odatda JavaScript raqamlari literallardan yaratilgan ibtidoiy qiymatlardir:
let x = 123;
Biroq raqamlarni new kalit so‘zi bilan obyektlar sifatida ham aniqlash mumkin:
let y = new Number(123);
Number obyektlarini yaratmang.
new kalit so‘zi kodni murakkablashtiradi va bajarilish tezligini sekinlashtiradi.
Raqamli obyektlar kutilmagan natijalarga olib kelishi mumkin:
== operatoridan foydalanilganda x va y teng bo‘ladi:
let x = 500;
let y = new Number(500);
O‘zingiz sinab ko‘ring »
=== operatoridan foydalanilganda x va y teng emas.
let x = 500;
let y = new Number(500);
O‘zingiz sinab ko‘ring »
(x==y) va (x===y) o‘rtasidagi farqga e’tibor bering.
(x == y) to‘g‘ri yoki noto‘g‘ri?
let x = new Number(500);
let y = new Number(500);
O‘zingiz sinab ko‘ring »
(x === y) rostmi yoki noto‘g‘ri?
let x = new Number(500);
let y = new Number(500);
O‘zingiz sinab ko‘ring »
Ikkita JavaScript obyektini taqqoslash har doim false qaytaradi.
Batafsil bilib oling:
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
