e-gradiva     HTML CSS JavaScript Načrtovanje    
  logotip  
SERŠ Maribor Iskanje Primeri

Podatkovni tipi

Računalnik sledi seznamu z informacijami tako, da dela z podatki. Tudi, če podatki vsebujejo nekaj, kar izgleda realno, kot npr. tekst vstavljen v polje obrazca, ko enkrat vrednost gre v program, je ne moreš več spremeniti oz. se je dotakniti. V resnici podatkovni program deluje z množico bitov v računalniškem polnilniku. Točneje podatek na spletni strani v jeziku JavaScript, zaseda dele računalniškega spomina za uporabo programskega brskalnika. V starih časih so programerji morali unovčiti znanje numeričnih naslovov RAM, kjer je bila shranjena vrednost, da so lahko naredili kopijo. Izven programiranja vrednost ponavadi vsebuje eno število; v svetu programiranja pa ni tako natančno določeno. Vsebina črk je vrednost, se pravi da je številčna vrednost. Nastavitev potrditvenega kvadratka je vrednost v JavaScript in ta je lahko ena vrednost podatkovnega tipa.

Podatkovni tipi programskega jezika JavaScript so:

tipPrimeropis
Primitivni tipi:  
niz - string"Maribor"Zaporedje znakov v narekovajih
Število - number5.6Število, ki ni zapisano v narekovajih
logični tip - booleantruelogični vrednosti true in false
prazen tip - nullnullBrez vsakršne vrednosti
nedoločen tip - undefinedundefinedVrednost spremenljivke še ni bila določena
Sestavljeni tip:  
predmet - object Nekaj programsko določenega z postopekmi in lastnostmi (tudi polja so predmeti)
funkcija - function  

Jezik JavaScript je v primerjavi z nekaterimi drugimi jeziki posebnost. Ko deklariramo neko spremenljivko, ni nujno, da ji hkrati določimo njen tip. Ali, kar večino izkušenih programerjev v drugih jezikih spravlja ob živce, ob izvajanju programa se lahko tip večkrat spremeni. Lahko eksplicitno zahtevamo spremembo tipa, lahko pa je to dogaja samodejno.

Nedoločen tip - undefined

Podatek, ki ima nedoločeno vrednost, pripada tudi nedoločenemu tipu. Nedoločena vrednost je lahko samo undefined. V resnici to ni prava vrednost, ampak samo ime lastnosti globalnega predmeta, katerega vrednost ni določena. Nedifinirano vrednost dobi spremenljivka, ki je deklarirana brez prireditve vrednosti. Nedoločena vrednost se po potrebi spremeni v NaN za številske tipe, v false za logične in v "undefined" za nize.

Vrednost undefined

V JavaScript je undefined ovrednotena kot primitivna vrednost. Obstajata dve definiciji za Undefined. Lahko se nanaša na spremenljivko, ki ni bila nikoli deklarirana. Ali pa se nanaša na spremenljivko, ki je bila deklarirana, toda ni ji bila dodeljena vrednost. Standard ECMA-262 uporablja drugo definicijo za undefined.

Undefined je tudi tip. Za določitev tipa se lahko uporabi operator typeof. Za vrednost Undefined bo tudi tip Undefined.

Internet Explorer pri uporabi vrednosti spremenljivke Undefined uporabi sporočilo o napaki.

V naslednjem primeru je NiJe ni deklarirana.

document.write("NiJe je tipa " + typeof NiJe + ".")

V naslednjem primeru je spremenljivka deklarirana, nima pa vrednosti:

var TuJe
document.write("TuJe je tipa " + typeof TuJe + ".")

Prazen tip - null

Tudi prazem tip ima le eno samo vrednost. Pravimo ji null. Po potrebi se lahko spremeni v druge tipe: v "null" za nize, v false za logične in v 0 za številske tipe.

Logični tip - boolean

Vrednosti logičnega tipa (ali krajše logični vrednosti) sta lahko le true (res je, pravilno) in false (ni res, napačno). Obe vrednosti sta rezervirani besedi. Vrednosti se piše brez narekovajev. V računskih operacijah se v false spremeni v 0 in true v 1.

Število - number

Najpogostejši tip podatkov v vseh programskih jezikih so števila. Za razliko od večine drugih jezikov, je JavaScript precej reven s številskimi tipi. Ne ločuje med celimi in realnimi ali predznačenimi in nepredznačenimi števili. Vsa števila obravnava kot realna števila. Kljub temu lahko število zapišemo kot celo ali realno, a samo pozitivne vrednosti (negativne dobimo z uporabo operatorja -, ki obrne predznak).

Celo število lahko zapišemo kot desetiško, šestnajstiško ali osmiško. Desetiško celo število zapišemo kot zaporedje desetiških števk (0-9), pri čemer prva števka ne sme biti 0 (razen ko gre za število 0). Šestnajstiško celo število pričnemo z 0x ali 0X, nadaljujemo pa z zaporedjem šestnajstiških števk (0-9, a-f, A-F). Osmiško celo število pa pričnemo z 0, nadaljujemo pa z zaporedjem osmiških števk (0-7). Če se število začne z 0 in je katerakoli števka večja od 7, potem je število desetiško.

Realno število se sestavi iz štirih delov, ki si morajo slediti v tem vrstnem redu: celi del, decimalni simbol, decimalni del in eksponent. Nekatere izmed teh štirih delov lahko izpustimo. Celi in decimalni del sta dve zaporedji desetiških števk (0-9), pri čemer se celi del ne sme pričeti z ničlo, razen če je to edina števka v tem delu. Decimalni simbol je pika, eksponent pa je sestavljen iz znaka e ali E, morebitnega predznaka plus ali minus in vsaj ene desetiške števke (0-9). Realno število mora vsebovati vsaj eno števko v celem in decimalnem delu skupaj, ter decimalni simbol ali eksponent.

JavaScript ponuja še eno posebnost. Zaradi želje prikazovanja strani tudi v primeru napake ponuja poleg že omenjenih števil še dve posebni števili: neskončno Infinity in neštevilo NaN.

Primitivna vrednost NaN

V JavaScript je NaN ovrednotena kot primitivna vrednost. NaN pomeni Not-a-Number (to ni število). Uporabljena je za številsko vrednost, ki predstavlja nelegalno število.

Za testiranje števil se lahko uporabi funkcija isNan in se preveri ali je vrednost števila legalna vrednost.

Primitivna vrednost Infinity

V JavaScript je Infinity ovrednotena kot primitivna vrednost. Infinity je številska vrednost, ki predstavlja pozitivno neskončnost. Pojavi se, ko zelo veliko pozitivno število doseže omejitev, ki velja za števila s plavajočo vejico, ki je 1.7976931348623157×10308.

-Infinity je številska vrednost, ki predstavlja negativno neskončnost. Pojavi se, ko zelo veliko pozitivno število doseže omejitev, ki velja za števila s plavajočo vejico, ki je 1.7976931348623157×10308.

Primer:

NekajVelikega = 4.6E+44 * 5,8E+333
document.write("NekajVelikega = " + NekajVelikega)

Primer:
NekajHudoNegativno = -9.9E+444
document.write("NekajHudoNegativno = " + NekajHudoNegativno)

V JavaScript so vsa števila, vklučno s celimi, obravnavana kot števila v plavajoči vejici.

Niz - string

Nizi so poljubna zaporedja znakov, ki jih zapišemo v narekovajih. Pri tem lahko popolnoma enakovredno uporabimo enojne ali dvojne narekovaje. Pomembno pa je, da niz zaključimo z enakim narekovajem, kot smo ga pričeli. Med pravila lepega programiranja sodi tudi navada (čeprav ni obvezna), da v celotnem skriptu/dokumentu/spletišču uporabljamo samo eno vrsto narekovajev za zapis nizov. Niz, ki ne vsebuje nobenega znaka, imenujemo prazen niz. Zapišemo ga s paroma narekovajev iste vrste, med katerima ni nobenega znaka (niti presledka).

Poleg običajnih znakov (črke, števke, ločila, oklepaji, operatorji ...) lahko niz vsebuje tudi posebne znake, kot so tabulator, znak za novo vrstico ali znake s posebnim pomenom. Poseben znak v nizu opišemo z uporabo znaka \ (backslash), ki mu sledi dejanski opis znaka. Posebni znaki, ki jih lahko opišemo na tak način, so:

\b znak za skok eno mesto v levo (backspace)
\f znak za skok na novo stran (form feed)
\n znak za skok v novo vrstico (new line)
\r znak za skok na začetek vrstice (carriage return)
\t znak za skok v naslednji stolpec (tab)
\v znak za skok v naslednji odstavek (vertical tab)
\' enojni narekovaj (single quote; apo)
\" dvojni narekovaj (double quote)
\\ nagibnica (backslash)
\XXX znak, predstavljen s kodo Latin1 (tri osmiške števke)
\xXX znak, predstavljen s kodo Latin1 (dve šestnajstiški števki)
\uXXXX znak, predstavljen s kodo Unicode (štiri šestnajstiške števke)

V nizu, ki ga napišemo v dvojnih narekovajih, ne moremo uporabiti dvojnega narekovaja, ker bi pomenil konec niza. Rešitev se skriva v posebnem znaku \". Tega lahko napišemo kjerkoli v nizu. Isto velja za enojni narekovaj v nizu, ki ga napišemo v enojnih narekovajih. Brez težav pa lahko uporabimo dvojni narekovaj v nizu z enojnimi narekovaji in obratno. Tudi znak \ je nekaj posebnega. Če ga potrebujemo kot znak v nizu, moramo napisati dva zaporedoma \\ .

Za izpis slovenških črk Č, č, Š in drugih je potrebno napisati znake po Unicode. Če je napisan JavaScript znotraj dokumenta (v ločenih datotekah ni potrebno) pa tudi znake <, >, /, -, ki so v HTML uporabljeni za pisanje značk.

Oglej si znake!

Predmet - object

Object je edini sestavljeni podatkovni tip. Vrednosti tega tipa si najlažje predstavljamo kot zbirko poimenovanih ali indeksiranih vrednosti, ki so lahko spet kateregakoli tipa (lahko so tudi predmeti). Med predmete spadajo datumi, tabele, funkcije, regularni izrazi ...

SERŠ Maribor : Strokovna gimnazija : 2003 : Danijel Mom