PDA

Volledige versie bekijken : simpele if


eagle
%Europe/Berlin %935 %2005, 23:27
heel dom vraagje wrschnlk

maar als een variabele niet gedefieerd is dan werkt dit niet heb ik gemerkt:

if(a == ""){
trace("works");
}
stop();


hoe krijg ik dit werkende?

arshad
%Europe/Berlin %939 %2005, 23:32
heel dom vraagje wrschnlk

maar als een variabele niet gedefieerd is dan werkt dit niet heb ik gemerkt:

if(a == ""){
trace("works");
}
stop();


hoe krijg ik dit werkende?


if(a == NULL){
trace("works");
}
stop();

eagle
%Europe/Berlin %940 %2005, 23:33
ik voel me op dit moment vrij belachelijk :)

Roenes
%Europe/Berlin %983 %2005, 00:36
if(a == NULL){
trace("works");
}
stop();if(a == null){
trace("works");
}
stop();null moet worden geschreven met kleine letters. FMX 2004 (PRO) is case sensitive :)

arshad
%Europe/Berlin %986 %2005, 00:40
if(a == null){
trace("works");
}
stop();null moet worden geschreven met kleine letters. FMX 2004 (PRO) is case sensitive :)
hmm.. ik heb ook flash mx 2004 pro, maar bij werkt die met hoofdletters..

Roenes
%Europe/Berlin %988 %2005, 00:42
hmm.. ik heb ook flash mx 2004 pro, maar bij werkt die met hoofdletters..Even getest in flash en je hebt gelijk.
trace(null == NULL);geeft true als resultaat. Toch vreemd aangezien NULL geen gereserveerd woord is en null wel.

Anyway, ik was iets te voorbarig met mijn antwoord :)

Folkert
%Europe/Berlin %008 %2005, 01:12
null is niet automatisch aangewezen, die moet je toewijzen. automatisch aanwezig is undefined. Beetje verwarrend wellicht omdat null == undefined.
Overigens werkt de nul checkl wel, maar is het dus bad practise. Dit omdat null en undefined andere betekenissen hebben in gebruik. undefined is zoals al gezegd, automatisch toegewezen. en geeft aan dat een variable er of niet is of leeg is. null geeft welliswaar een lege variable aan maar die gebruik je om doelbewust even een varaible leeg te laten. null wijs je eigenlijk toe zelf dus, in tegenstelling tot undefined. Aan de datatype kan je het bijvoorbeeld gelijk al zien

trace("a == undefined") //is waar
trace("a === undefined") //is waar
trace ("a == null") //is waar
trace("a === null") //is niet waar

Gebruik van null vs undefined bijvoorbeeld als je een functie of class method maakt die een returntype heeft. Dan ben je verplicht daaraan te voldoen anders krijg je een error melding. Echter gebruik je daar null, dan is dat ook toegestaan.
voorbeeld

function foo():Object
{
//doe iets
//geldige return is
return null;
}

undefined is standaar assigned en kan je tevens gebruiken als checker voor je functie argumenten bijvoorbeeld

function foo( zegDan:String, naam:String )
{
naam = (naam == undefined) ? "anoniem" : naam;
trace( naam+" "+zegDan);
}
//call bv
foo("zei nog zo geen bommetje"); //geen 2de argument daar


Wat wel best verwarrend is is het feit dat undefined niet zegt dat een variable echt niet bestaat. het zegt alleen dat die variable in iedergeval geen value bevat.