JavaScript dinamik tildir. Bu shuni anglatadiki, ma'lumotlar turini tekshirish kompilyatsiya emas, balki ishga tushirishda amalga oshiriladi.
Dinamik tillarda bir xil nomdagi o'zgaruvchilar har xil turdagi ma'lumotlarni saqlash uchun ishlatilishi mumkin.
Masalan, var kalit so'zi bilan aniqlangan t o'zgaruvchisi har xil turdagi ma'lumotlarni saqlashi mumkin; u ham ishga tushirilishi mumkin, lekin aniqlanmagan:
var t = 16; // t - son
var t = "Tereza"; // t - satr
var t = rost; // t - mantiqiy
var t; // t aniqlanmagan
Barcha t o'zgaruvchilari turli xil JavaScript ma'lumotlar turlarini o'z ichiga oladi. JavaScript-da siz o'zgaruvchini ishlatishdan oldin uning ma'lumotlar turini aniq belgilashingiz shart emas.
JavaScript butun sonlar va suzuvchi nuqta raqamlarini ajratmasdan bitta raqamli ma'lumotlar turiga ega. Shuning uchun JavaScript-da raqamlar kasrli yoki kasrsiz yozilishi mumkin:
var num1 = 93;
var num2 = 93,00;
Yuqoridagi misolda ikkala o'zgaruvchida vergul bormi yoki yo'qmi, raqamlar mavjud.
JavaScript-ning eksponensial belgisi juda katta yoki kichik raqamlarni qisqartirish imkonini beradi:
var num3 = 987e8; // 98700000000
var num4 = 987e-8; // 0,00000987
JavaScript-da raqamlar 15 ta raqamgacha aniq hisoblanadi. Bu degani, 16-raqamga yetgandan so'ng, raqamlar yaxlitlanadi:
var num5 = 999999999999999; // 999999999999999 sifatida qoladi
var num6 = 9999999999999999; // 10000000000000000 gacha yaxlitlangan
Shuningdek, JavaScript-dagi raqamlar uchta ramziy ma'noga ega:
Infinity - cheksizlikka yaqinlashadigan ijobiy son bo'lgan raqamli qiymat.
Infinity - cheksizlikka yaqinlashadigan salbiy son bo'lgan raqamli qiymat.
NaN - No-a-Number, suzuvchi nuqtali raqamning maxsus holati.
Infinity va -Infinity JavaScript-da mavjud bo'lgan maksimal mumkin bo'lgan sondan tashqaridagi sonni hisoblashda qaytariladi. Ular, shuningdek, aniqlanmagan qiymatlarni hisoblashda, masalan, nolga bo'lishda paydo bo'ladi:
var num7 = 5/0; // Cheksizlik
var num8 = -5 / 0; // -Cheksizlik
Texnik jihatdan, agar raqam JavaScript-ning yuqori chegarasi bo'lgan 1,797693134862315E + 308 dan katta bo'lsa, Infinity qaytariladi.
Xuddi shunday, raqam pastki chegaradan chiqib ketganda -Infinity ko'rsatiladi, -1,797693134862316E + 308.
Infinity raqamini tsikllarda ham ishlatish mumkin:
while (num9! = Infinity) (
// Bu yerda kod num9 = Infinity orqali bajariladi
}
Aniqlanmagan raqamlar uchun NaN chiqadi. Agar siz raqam va noaniq qiymat ustida matematik amalni bajarishga harakat qilsangiz, NaN olasiz. Masalan:
var x = 20 / "Shark"; // x NaN bo'ladi
20 ni Shark qatoriga bo'lish mumkin emasligi sababli, x ning qiymati NaN bo'ladi.
Biroq, agar qatorni raqamli qiymat sifatida baholash mumkin bo'lsa, JavaScript matematik ifodani bajaradi:
var y = 20 / "5"; // y 4 bo'ladi
JavaScript 5 ni raqamli qiymat sifatida ko'rib chiqishi mumkinligi sababli, 5 matematik bo'linish operatori bilan ishlaydi.
Agar ifodadagi bitta o'zgaruvchiga NaN qiymati berilgan bo'lsa, ikkinchi operand raqam bo'lsa ham, natija NaN bo'ladi.
var a = NaN;
var b = 37;
var c = a + b; // c NaN bo'ladi
Shunday qilib, JavaScript-da faqat bitta raqamli ma'lumotlar turi mavjud. JavaScript-da butun sonlar va suzuvchi nuqta raqamlarini ajratish shart emas, chunki JavaScript dinamik tildir.
Do'stlaringiz bilan baham: |