NaN a funkcia isNaN pri programovaní v AS

V poslednej dobe mnohí ľudia na internete vyhľadávajú, čo vo Flash znamená NaN. Rozhodol som sa preto napísať krátky opis.

Pri programovaní aplikácií pomocou ActionScriptu (2 aj 3) sa nám môže stať, najmä ak načítavame údaje od uživateľa alebo z externých súborov, že výsledok matematických operácií nám vráti hodnotu NaN.

Skratka NaN znamená “Not a Number”, čiže “nie je číslo”.

Ak by sme mali vytvorené tri premenné:

var cislo1 = 10;
var cislo2 = "3.15"
var cislo3 = "osem";

Môžeme vidieť, že nezmyselný výpočet (3 * osem) nám vráti hodnotu NaN – vo výpočte je slovo namiesto čísla 8

trace(3 * cislo3); //vypise NaN

Samozrejme ak počítame normálne hodnoty, tak vrátena hodnota je výsledok výpočtu:

trace(cislo1 * cislo2); //31.5

Vidíme, že ak je číslo v úvodzovkách, nerobí to žiaden problém…

Výborné je, že nemusíme čakať či nám Flash vyhodí chybové hlásenie, ale pomocou funkcie isNaN() môžeme v ActionScripte overiť, či hodnota je alebo nieje číslo.

Ak overovaná hodnota je číslo, vráti funkcia isNaN() hodnotu false
Ak overovaná hodnota nie je číslo, vráti funkcia isNaN() hodnotu true

trace (isNaN(cislo1)); //vracia false
trace (isNaN(cislo2)); //vracia false
trace (isNaN(cislo3)); //vracia true, pretoze je pravda ze toto nieje cislo

Túto funkciu môžeme teda použiť v podmienkach a ak hodnota načítaná napríklad od uživateľa nieje číslo, môžeme ho na to nejakým spôsobom upozorniť:

if (isNaN(cislo3))
{
trace("Hodnota cislo3 (" + cislo3 + ") nieje cislo...");
}

A naopak, ak chceme aby sa podmienka vykonala iba ak je hodnota číselná, tak to zapíšeme takto:

if (!isNaN(cislo2))
{

trace("Hodnota v cislo2 (" + cislo2 + ") je cislo...");
}

Reklamy

Pridaj komentár

Zadajte svoje údaje, alebo kliknite na ikonu pre prihlásenie:

WordPress.com Logo

Na komentovanie používate váš WordPress.com účet. Odhlásiť sa / Zmeniť )

Twitter picture

Na komentovanie používate váš Twitter účet. Odhlásiť sa / Zmeniť )

Facebook photo

Na komentovanie používate váš Facebook účet. Odhlásiť sa / Zmeniť )

Google+ photo

Na komentovanie používate váš Google+ účet. Odhlásiť sa / Zmeniť )

Connecting to %s

%d bloggers like this: