Načrtovanje in razvoj spletnih aplikacij

Podatkovni tipi v JavaScriptu

Podatkovni tipi določajo, kakšne vrednosti lahko uporabljamo v programu. V JavaScriptu razlikujemo med osnovnimi oziroma primitivnimi tipi in tipom object, ki predstavlja objekte. Med primitivne tipe sodijo string, number, bigint, boolean, undefined, symbol in null.

Osnovna pravila

  • number predstavlja števila s plavajočo vejico.
  • bigint predstavlja zelo velika cela števila.
  • string predstavlja besedilo.
  • boolean ima dve vrednosti: true in false.
  • undefined pomeni, da vrednost ni bila dodeljena.
  • null pomeni namerno odsotnost vrednosti.
  • symbol predstavlja enolično vrednost.
  • object predstavlja objekte, tabele in druge sestavljene strukture.

Primerjave

number in bigint

Tip number uporabljamo za običajna števila, tako cela kot decimalna. Tip bigint pa uporabljamo za zelo velika cela števila, ki presegajo varno območje tipa number.

Pripona n na koncu števila pomeni, da gre za vrednost tipa bigint, ki jo uporabljamo za zelo velika cela števila.

const a = 30;
const b = 10.123;
const c = 3.12e15;
const d = 9007199254740993n;

Pomni: Pripona n na koncu števila pomeni, da gre za vrednost tipa bigint. Ta zapis uporabljamo pri zelo velikih celih številih, na primer 9007199254740993n. bigint uporabljamo samo za cela števila, zato zapis kot na primer 10.5n ni veljaven.

Tip number pozna tudi posebne vrednosti, kot sta Infinity in NaN.

const x = 5 / 0;        // Infinity
const y = 5 / "hruška";   // NaN

Pozor: Starejša uporaba osmiških števil z vodilno ničlo, na primer 01234, ni več primerna v sodobni praksi. Za sodobni zapis osmiškega števila uporabljamo obliko 0o, na primer 0o123.

string in druge vrednosti

Tip string predstavlja besedilo. Nize zapisujemo v enojnih narekovajih, dvojnih narekovajih ali v sodobnem JavaScriptu tudi z obrnjenimi narekovaji.

const drzava = "Slovenija";
const predmet = 'Programiranje';
const sporocilo = `Pozdravljen svet`;

Niz lahko vsebuje tudi posebne znake, ki jih zapišemo z ubežnimi zapisi. Ti so sestavljeni iz znaka \ in ustreznega znaka.

"Znak \" je poseben."
"C:\\Temp\\datoteka.txt"
"Prva vrstica\nDruga vrstica"

undefined in null

Vrednost undefined pomeni, da spremenljivka obstaja, vendar ji še nismo dodelili vrednosti. Vrednost null pa pomeni, da smo vrednost namenoma nastavili na “brez vrednosti”.

let oseba;
let uporabnik = null;

Pomni: Prazen niz "" ni enak vrednosti null. Prazen niz je besedilo brez znakov, null pa pomeni namensko odsotnost vrednosti.

boolean

Tip boolean uporabljamo pri pogojih in odločitvah. Ima samo dve vrednosti: true in false.

const prijavaUspešna = true;
const računOdklenjen = false;

symbol

Tip symbol predstavlja enolično in nespremenljivo vrednost. Vsak simbol, ustvarjen z zapisom Symbol(), je unikaten, zato dva simbola nista enaka, tudi če imata enak opis. Uporabljamo ga predvsem za ustvarjanje posebnih ključev lastnosti objektov, kadar želimo preprečiti, da bi se ime lastnosti po naključju ujemalo z drugim imenom.

const id1 = Symbol("id");
const id2 = Symbol("id");

console.log(id1 === id2); // false
const id = Symbol("id");

const oseba = {
   ime: "Ana",
   [id]: 125
};

Pomni: Vsak zapis Symbol() ustvari novo enolično vrednost. Tudi če imata dva simbola enak opis, med seboj nista enaka.

object

Tip object predstavlja sestavljene podatke. Med objekte sodijo navadni objekti, tabele, datumi in tudi funkcije kot posebna vrsta objektov.

const oseba = {
   ime: "Janez",
   priimek: "Novak",
   starost: 50,
   velikost: 180
};

Priporočila

  • Pri razlagi podatkovnih tipov vedno loči med tipoma number in bigint.
  • Pri natančni razlagi vedno loči med undefined, null in praznim nizom "".
  • Za običajna besedila uporabljaj tip string, za logične odločitve pa tip boolean.
  • Pri sestavljenih podatkih uporabljaj objekte in tabele.
  • Ubežne znake v nizih uporabljaj le tam, kjer so res potrebni.

Pozor: Tip number ni namenjen zelo velikim celim številom brez omejitev. Za taka števila je v sodobnem JavaScriptu namenjen tip bigint.