Avatar billede monkeysee Nybegynder
17. januar 2002 - 09:51 Der er 10 kommentarer og
1 løsning

Check om variabel eksisterer

Check om variabel eksisterer uden at den er defineret. Kan det lade sig gøre?

Jeg tænker altså IKKE på metoden

if (!var){
dosomething()
}

- der kræver at variablen er defineret i forvejen og resulterer i fejl!
Avatar billede emileej Nybegynder
17. januar 2002 - 09:53 #1
Den metode du beskriver bruger jeg selv, og jeg har endnu ikke oplevet at browseren giver fejl. Det plejer altid at virke...

E-)mil
http://privat.eej.dk
Avatar billede monkeysee Nybegynder
17. januar 2002 - 09:58 #2
et script som dette:

--------------------------------
if (!arg){
    alert(\'there is no arg\')
}
--------------------------------

- resulterer i fejl på explorer, og bliver ignoreret af netscape 4&6 (har lige testet)
Avatar billede emileej Nybegynder
17. januar 2002 - 10:00 #3
Hvad med:
if(arg){
    void(0);
}else{
    alert(\"There is no arg!\");
}
Avatar billede monkeysee Nybegynder
17. januar 2002 - 10:05 #4
Hvis det virker hos dig, er det fordi du sætter variablen \"arg\" til at starte med, f.eks ved at skrive:

var arg
var arg = \'\'
var arg = false (eller true, ligemeget)

Jeg vil gerne undgå at definere denne variabel, men jeg vil samtidig gerne teste om den er defineret, uden at få en script error.

hm.
Avatar billede emileej Nybegynder
17. januar 2002 - 20:44 #5
if(window.arg){
    void(0);
}else{
    alert(\"There is no arg!\");
}

jeg definerer intet - det er jo ideen - right? *gG*
Avatar billede monkeysee Nybegynder
18. januar 2002 - 06:11 #6
SUPER!!! Det virker i IE5&6, NS4&6

Du ved, i PHP er det bare at skrive: if($arg) ...
jeg var lige ved at afskrive opgaven som et \"Ø\" men det lader til at Javascript ikke vil finde sig i det!

Avatar billede erikjacobsen Ekspert
18. januar 2002 - 06:24 #7
Du tester ikke for om den er defineret på denne måde. Fx vil

  var bummelum=0;

  if (window.bummelum) {
    alert(\'defineret\');
  } else {
    alert(\'næh\');
  }

skrive næh - selv om bummelum er defineret
Avatar billede monkeysee Nybegynder
18. januar 2002 - 06:34 #8
jeg forstår - javascript indeholder 6 klasser for variabler, hvoriblandt en af dem hedder \"undefined\". Men i dette tilfælde genererer jeg mine variabler dynamisk, og ønsker simpelthen bare at undgå script fejl!

Flg. bliver alle anset som undefined:

var bum
var bumme = \"\"
var lum = false

Avatar billede monkeysee Nybegynder
18. januar 2002 - 06:36 #9
Nåh ja, og selvfølgelig

bimmelim=0

så ialt 4 metoder ? jeg har lært noget:)
Avatar billede erikjacobsen Ekspert
18. januar 2002 - 07:35 #10
Ok - bare du er lykkelig ...
Avatar billede jakoba Nybegynder
23. januar 2002 - 18:03 #11
if ( typeof( arg ) == 'undefined' ) {
  alert( "arg findes ikke." )
}

har den fordel at den ikke vil give false hvis variablen eksisterer og indeholder 0 eller en tom streng.

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester