Razumevanje tipov podatkov v Javascript: Številski tipi
JavaScript je dinamično tipiziran jezik‚ kar pomeni‚ da se tip podatka spremenljivke določi med izvajanjem kode‚ ne pa ob deklaraciji. Ta fleksibilnost lahko olajša programiranje‚ hkrati pa lahko vodi do nepričakovanih rezultatov‚ če nismo pozorni na tipe podatkov‚ s katerimi delamo. Ta članek se bo osredotočil na tipe števil in operacije z njimi v JavaScript-u‚ obravnaval pa bo tudi potencialne pasti in načine za njihovo preprečevanje.
Osnovni tipi števil
JavaScript ima dva primarna tipa števil:Number
inBigInt
.
Number
TipNumber
predstavlja 64-bitna števila s plavajočo vejico (IEEE 754 dvojna natančnost)‚ kar pomeni‚ da lahko predstavlja zelo širok razpon števil‚ vključno z decimalnimi števili. Vendar pa imajoNumber
vrednosti omejitve glede natančnosti. Zaradi načina predstavitve števil s plavajočo vejico lahko pride do napak pri zaokroževanju‚ kar lahko vpliva na rezultate izračunov‚ še posebej pri zelo majhnih ali zelo velikih številih.
Primeri:
let x = 10;
// Celotno številolet y = 3.14;
// Število s plavajočo vejicolet z = Infinity;
// Neskončnostlet w = NaN;
// Ni število (Not a Number)
NaN
(Not a Number) je posebna vrednost‚ ki predstavlja rezultat operacije‚ ki ni število‚ na primer deljenje z ničlo ali uporaba matematičnih funkcij na neštevilskih vrednostih. Pomembno je preverjati zaNaN
‚ ker seNaN
ne izenači sam s seboj (NaN === NaN
vrnefalse
).
BigInt
TipBigInt
je predstavljen v novejših različicah JavaScript-a in omogoča predstavitev poljubno velikih celih števil. To rešuje omejitve tipaNumber
glede velikosti števil.BigInt
vrednosti se ustvarijo tako‚ da se številu doda črkan
:
Primer:
let bigNumber = 9007199254740991n; // Število‚ ki presega mejo tipa Number
Pomembno je vedeti‚ daBigInt
inNumber
nista medsebojno združljiva. Ne moremo neposredno izvajati operacij medBigInt
inNumber
vrednostmi‚ ne da bi prišlo do napake. Potrebno je najprej pretvoriti eno vrednost v ustrezni tip.
Operacije s števili
JavaScript podpira standardne aritmetične operacije:
+
(seštevanje)-
(odštevanje)*
(množenje)/
(deljenje)%
(ostanek pri deljenju)**
(potenciranje)
Primeri:
let a = 10 + 5; // a = 15
let b = 20 ⎻ 7; // b = 13
let c = 4 * 6; // c = 24
let d = 15 / 3; // d = 5
let e = 17 % 5; // e = 2
let f = 2 ** 3; // f = 8
Pri deljenju z ničlo dobimoInfinity
(če je deljenec pozitiven) ali-Infinity
(če je deljenec negativen). Pri poskusu računanja zNaN
dobimo vednoNaN
.
Pretvarjanje tipov
Včasih je potrebno pretvoriti nizovne predstavitve števil v številčne vrednosti ali obratno. JavaScript ponuja funkcije za to:
parseInt
: Pretvori niz v celo število.parseFloat
: Pretvori niz v število s plavajočo vejico.toString
: Pretvori število v niz.Number
: Pretvori niz ali drugo vrednost v število (če je možno).
Primeri:
let str = "123"; let num = parseInt(str); // num = 123
let str2 = "3.14"; let num2 = parseFloat(str2); // num2 = 3.14
let num3 = 456; let str3 = num3.toString; // str3 = "456"
let str4 = "789.5"; let num4 = Number(str4); // num4 = 789.5
Pomembno je paziti na morebitne napake pri pretvarjanju. Če funkcijaparseInt
aliparseFloat
ne more pretvoriti niza v število‚ vrneNaN
.
Operacije z različnimi tipi
JavaScript implicitno pretvarja tipe podatkov v nekaterih situacijah‚ kar lahko vodi do nepričakovanih rezultatov. Na primer‚ seštevanje niza in števila bo rezultiralo v konkatenaciji (združitvi) niza:
Primer:
let result = "10" + 5; // result = "105"
Za pravilen izračun je potrebno najprej pretvoriti niz v število:
Primer:
let result2 = parseInt("10") + 5; // result2 = 15
Napredne tehnike
Za bolj zahtevne operacije s števili lahko uporabimo vgrajene matematične funkcije‚ kot soMath.abs
(absolutna vrednost)‚Math.pow
(potenciranje)‚Math.sqrt
(kvadratni koren)‚Math.round
(zaokroževanje)‚Math.floor
(zaokroževanje navzdol)‚Math.ceil
(zaokroževanje navzgor) in mnoge druge. Te funkcije so zelo uporabne pri reševanju različnih matematičnih problemov.
Zaključek
Določanje tipa podatkov v JavaScript-u je ključnega pomena za pravilno delovanje programa. Razumevanje tipov števil‚ operacij z njimi in tehnik pretvarjanja tipov je osnova za pisanje robustnih in zanesljivih JavaScript aplikacij. Vedno je priporočljivo preverjati tipe podatkov in uporabljati eksplicitne pretvorbe‚ da se prepreči nepričakovana vedenja in napake.
Ta članek je predstavil osnove‚ vendar je področje obdelave števil v JavaScript-u precej obsežno. Za bolj poglobljeno razumevanje svetujemo preučevanje dodatne literature in eksperimentiranje z različnimi primeri.
oznake: #Java #Javascript