Bizarr viselkedés - WTF-JS
Egy igen bizarr viselkedésbe ütköztem, legalábbis ami a Firefox 3.6.6 verzióját illeti Windows SP3-on.
A helyzet az, hogy egy Webworkerben definiálok jópár konstanst, mindegyiket Number értékkel;
A kód számos részén használom ezeket a konstansokat sikeresen, ahol minden rendben működik.
Van azonban egy switch-em, nagyjából így.Lényeg a lényeg, cTipus értéke hiába egyezik meg PROBLEMAS_KONSTANS értékével, nem fut le az adott case-ág, hanem a default, ahol kiírja cTipus értékét, ami egyezik PROBLEMAS_KONSTANS értékével.
Minden más esetben a switch rendesen működik.
De a legfurcsább mind közül, hogy ha PROBLEMAS_KONSTANS-nak egy String értéket adok definícióban, akkor a helyes case-ág fut le és nem a default. Viszont bármilyen Number értékkel bukik a dolog.
A fájl UTF-8 BOM nélkül, de csak ASCII karakterek vannak benne, sorvég mindenhol egységesen CRLF.
Sajnos még ötletem sincs, hogy reprodukálni hogyan lehetne...
Valakinek ötlete, hogy ez hogyan jöhet össze?
■ A helyzet az, hogy egy Webworkerben definiálok jópár konstanst, mindegyiket Number értékkel;
A kód számos részén használom ezeket a konstansokat sikeresen, ahol minden rendben működik.
Van azonban egy switch-em, nagyjából így.
/**
* sok másik konstans definíció
*/
const PROBLEMAS_KONSTANS = 7;
const EGY_MASIK_KONSTANS = 8;
/**
* stb, stb...
*/
cTipus = egyFuggveny(egyParameter);
switch (cTipus)
{
case EGY_MASIK_KONSTANS:
case PROBLEMAS_KONSTANS:
// ide kéne jutni
break;
// Több case-ág, mind helyesen működik
default:
kimenetre(cTipus);
}
Minden más esetben a switch rendesen működik.
De a legfurcsább mind közül, hogy ha PROBLEMAS_KONSTANS-nak egy String értéket adok definícióban, akkor a helyes case-ág fut le és nem a default. Viszont bármilyen Number értékkel bukik a dolog.
A fájl UTF-8 BOM nélkül, de csak ASCII karakterek vannak benne, sorvég mindenhol egységesen CRLF.
Sajnos még ötletem sincs, hogy reprodukálni hogyan lehetne...
Valakinek ötlete, hogy ez hogyan jöhet össze?
egyFuggveny
egyFuggveny
milyen típust ad vissza? Nem lehet hogy a kettő típusa nem egyezik meg? Biztos ami tuti, én azért ott szintén Number típust adnék vissza, amennyiben arra számítok.milyen igaz
Ezer hála!