Primitivni tipovi podataka
Primitivni tipovi podataka su nepromjenjivi. Njihovo se stanje ne može promijeniti nakon što su stvoreni. To su:
brojevi
- cijeli (integers)
- decimalni (floating point numbers) – zauzimaju više mjesta, u JS su uvijek spremljeni u 64 bita
tekst
Tekst je string tip podataka, piše se u navodnicima (jednostrukim ili dvostrukim)
Boolean
Vrijednosti su mu true / false
Truthy i falsey vrijednosti su one koje se konvertiraju u true i false kada izraz očekuje Boolean vrijednost.
undefined
Objektni tipovi podataka
Objetni tipovi podataka su promjenjivi, osim null koji je nepromjenjiv. To su:
objekti
nizovi
funkcije
null
Null vs. undefined
null je ključna riječ koja se obično koristi da naznači odsutnost neke vrijednosti.
undefined je vrijednost varijabli koje nisu inicijalizirane i vrijednost koju dobijemo kada
pokušamo dohvatiti vrijednost objekta ili elementa niza koji ne postoji. Također ćemo
dobiti undefined za izvršenje funkcije koja ne vraća nikakvu vrijednost.
Po default-u vrijednost deklarirane varijable je undefined. Kad se varijabla deklarira to znači da se rezervira memorijski prostor za nju. Ako joj nismo (još) dodjelili vrijednost, onda u tom prostoru piše undefined. Za razliku od toga vrijednost null ne pokazuje ni na jednu memorijsku lokaciju.
Undefined je izmišljotina JavaScripta da bi nam malo zakomplicirala stvar 🙂
Type of operator
typeof "John" // "string"
typeof 3.14 // "number"
typeof NaN // "number"
typeof false // "boolean"
typeof [1,2,3,4] // "object"
typeof {name:'Pero', age:34} // "object"
Automatska konverzija podataka
JavaScript obavlja mnoge konverzije tipa podatka automatski ovisno o kontekstu u kojemu se podatak koristi, te operatoru. ITo je nepresušan izvor bugova i smutnji.
String
Niz od 0 ili više znakova okružen navodnicima (jednostrukim ili dvostrukim). Brojanje pozicije znaka u stringu počinje od nule. I praznina je znak!
Konkatenacija
Konkatenacija je spajanje 2 ili više stringova. Koristi se operater + ili conccat() metoda
var text1 = "Hello";
var text2 = "world!";
// Konkatenacija sa operaterom +
console.log (text1 + text2);
// Konkatencaija sa concat() metodom
console.log (text1.concat(" ", text2));
Posebni znakovi
Neki znakovi unutar stringa (npr navodnici, kosa crta) se moraju “izbjeći” da bi se prikazali. To radimo sa / (backslash).
var x = "Ovo je moj string \"u navodnicima\"";
Metode
- length – duljina stringa
- charAt – znak na poziciji
- trim – miče praznine na početku i kraju
- indexOf – vraća poziciju stringa unutar stringa
- split – pretvara string u niz
- replace – vraća noci string sa zamijenjenim izrazom
- toUpperCase – pretvara string u sva velika slova
Popis svih metoda za string: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
Operatori
Logički operateri
| && | and (i) |
| || | or (ili) |
| ! | not (ne) |
Aritmetički operateri
| + | zbrajanje |
| – | oduzimanje |
| * | množenje |
| / | dijeljenje |
| % | modulus (ostatak dijeljenja) |
| ** | potenciranje (ES6) |
| ++ | increment |
| — | decrement |
Operatori dodjeljivanja
| = | |
| += | npr. x += y znači x = x + y |
| -= | |
| *= | |
| /= | |
| %= | |
| **= |
Relacijski operateri
| == | jednako po vrijednosti |
| === | jednako po vrijednosti i tipu podatka |
| != | nije jednako |
| !== | nije jednako po vrijednosti ili tipu |
| > | veće od |
| < | manje od |
| >= | veće ili jednako od |
| <= | manje ili jednako od |
| ? | Uvjetni (ternar) operator koji uzima tri operanda: 1. uvjet iza kojeg slijedi upitnik (?) 2. izraz za izvršavanje ako je uvjet istinit iza kojeg slijedi dvotočka (:) 3. izraz za izvršiti ako je uvjet lažan |
Bitwise operateri
| & | |
| | | |
| ~ | |
| ^ | |
| << | |
| >> | |
| >>> |
Operater konkatenacije
| + |
Ostali operateri
| delete | |
| typeof | |
| void | |
| instanceof | |
| in |
Tipovi operatera (po broju operanada)
// Unarni
var x += 1;
// Binarni
vad x 0 y + 1;
// Ternarni - 3 operacije u jednom
var x = y ? y : x + 1;