Javascriptben a változók nem sok féle értéket vehetnek fel. Ezek lehetnek:


Szám érték

A szám egy 64bites lebegőpontos szám (ismertebb nevén double), aminél számítások során oda kell figyelni, mivel a lebegőpontos típusból adódóan nem ad teljesen pontos eredményeket, csak megközelítőeket. Ez fontos lehet például pénzzel való számolás során. Legjobb ilyenkor a töredék-részeket felszorozva egészekkel elvégezni a számítást, majd utána visszaalakítani töredékalakba.
Speciális érték a NaN a ‘nem szám’. Nem definiált vagy hibás számítási művelet eredménye. Toxikus, így minden NaN-t tartalmazó művelet eredménye NaN lesz. Mivel nem szám, ezért semmilyen más számmal nem egyenlő, éppen ezért önmagával sem, mivel a neve ellenére a NaN típusa szám.

(NaN == NaN) === false

A Number(érték) függvény használható értékek számmá történő konvertálására, hiba esetén eredményként NaN-t ad vissza. Ugyanezt érhetjük el a + prefix használatával:

Number("42") == +"42"

A parseInt(érték, alap) szintén számmá alakításhoz használatos függvény, azzal a bővítéssel, hogy megadható a használni kívánt számrendszer alapja. A paraméter elejétől haladva az első nem-szám karakterig beolvassa a számokat, majd átalakítja azokat. Mivel a kezdő helyiértékű 0 esetén nyolcas számrendszer az alapértelmezés, érdemes minden híváskor meghatározni a használni kívánt alap értékét, hogy a félrekonvertálást elkerüljük.

parseInt("08") === 0

(mivel a 8 nem érvényes szám a nyolcas számrendszerben)

parseInt("08", 10) === 8

Szöveg érték

Szöveg minden 0 vagy hosszabb terjedelmű 16bites karaktert tartalmazó karaktersorozat. A karakternek nincs külön típusa, az javascriptben 1 hosszúságú szöveg. A szövegek definiálásuk után nem módosíthatóak, módosítás esetén egy új szöveg áll elő az új tartalommal. Az egyszeres és kétszeres idézőjelek egyforma értelemmel bírnak, köztük nincs különbség.
A szövegnem van lekérdezhető hossza string.length, ez megadja hány 16bites karakterből épül fel a szöveg. Ez azonban nem minden esetben egyezik meg a tartalmazott utf8 karakterek számával.
String(szám) segítségével bármilyen szám szöveggé alakítható. Ezzel egyenértékű az üres szöveggel való összefűzés művelete, hasonló módon, mint számmá konvertáláskor:

String(42) == "" + 42

Boolean érték

Kétértékű típusnak két értéke lehet true illetve false. A konvertáló funkciója helyettesíthető a duplanegáció (kétszeres tagadás) operátorral:

Boolean(érték) == !!érték

Arra viszont külön figyelmet kell fordítani, hogy mi számít igaz és mi hamis értéknek. Hamis értékek javascriptben:

false
null
undefined
"" /* (üres szöveg) */
0
NaN

Igaz értékek:

/* minden más érték (ide tartozik minden objektum) */
"0" /* (nulla mint szöveg) */
"false" /* (szintén mint nem-üres szöveg) */

Objektum

Annak ellenére, hogy a Javascript sokak szerint nem objektumorientált nyelv, erőteljesen az. Az objektum ebben a nyelven az objektum és a hash-táblák összesítése.
A new Object egy új, üres név/érték párokból álló konténert hoz létre, ahol a név bármilyen szöveg, az érték pedig bármilyen érték lehet – az undefined kivételével.
A tulajdonságai és függvényei pont- vagy tag-hivatkozással érhetőek el.
obj.tulajdonsag megegyezik az obj->tulajdonsag hívással.

NULL

null értéknek számít az, ami nem tartozik egyik csoportba sem.

UNDEFINED

undefined pedig az, ami még null sem. Ez az értéke minden kezdőérték nélkül definiált változónak és az objektumok hiányzó tulajdonságainak.
A névválasztás kicsit értelmetlen, hiszen egy változó már lehet definiált és emellett lehet az értéke undefined.

Funkció mint érték

Nagy előnye a nyelvnek, hogy a funkció nem teljesen külön fogalomkörbe tartozik, hanem egy speciális érték, tehát minden olyan helyen előfordulhat, ahol érték megjelenhet. Így ez lehet értéke változónak, lehet metódusa objektumnak és lehet egy függvény visszatérési értéke is.
A definíció megszokott formája:

  function Funkcio () {
  };

A bővített forma (az értelmező erre a formára alakítja a megszokott formát is):

  var Funkcio = function () {
  };