Avatar billede mik789 Nybegynder
20. marts 2002 - 23:00 Der er 5 kommentarer og
2 løsninger

false / true

Jeg er ved at lære javascript, og der en del grundbegreber jeg skal have sat på plads. F.eks. funktionen af værdierne false / true.

Her er et eksempel fra www.javascriptworld.com , som tjekker om man har installeret QuickTime og i givet fald åbner en QuicTime animation:

<head>

<script language="javascript">

hasQT = false;

for (i=0; i<navigator.plugins.length; i++) {
    if (navigator.plugins[i].name.indexOf("QuickTime") >= 0) {
      hasQT = true;
    }
}

</script>

</head>

<body>

<script language="javascript">

if (hasQT) {
  document.write("<embed src='images/cometAnim.mov' width='320' height='250'><\/embed>")
}
else {
  document.write("<img src='images/cometAnim.jpg' alt='comet' width='320' height='208'>")
}
   
</script>

</body>

------------

Mit 1. sp.: hvorfor er det nødvendigt først at sætte hasQT=false ? Er det fordi man derved simpelthen definerer variablen hasQT fra starten af, og fordi det er en forudsætning for at den kan være true hvis de flg. betingelser er opfyldt, at den som udgangspunkt sættes = false?

Mit sp.2: hvad er den præcise betydning af udsagnene return true / return false? Hvordan skal de oversættes til dansk, dvs. hvad er deres logiske betydning, og hvad er deres funktion? Jeg kan se at return false f.eks. bruges til at annulere en handling, men hvorfor fungerer udsagnet sådan, dvs. i kraft af hvilken betydning?

15 point til hvert af de to sp.

Håber ikke jer er for tåget.
/mik
Avatar billede rou Nybegynder
20. marts 2002 - 23:10 #1
Den bliver først sat til false, fordi at hvis den så ikke bliver sat til True, vil være false. Da den ikke er defineret som en boolsk variabel, vil det være lidt svært at checke på indhold ellers.

Netop deres logiske betydning, er Sand og Falsk. False bruges ikke som sådan til at annullere en handling. Det er bare normalt det som returneres ved en fejl, eller som et "nej" svar.
Det svar kan man så bruge, og annulere sin handling efter det.

Boolske værdier (True og False) er meget praktiske. Du bruger dem også indirekte, når du checker på næsten alt andet.
F.eks. en IF sætning. Den checker faktisk på om dens indhold er TRUE, og ikke om det du skriver er sandt.

Altså er "if(1=1) " det samme som "if(true)"

Prøv at tænke over flg. :

fVar = false
for(i=1;i<20;i++) {
  fFvar = (fVar || i=15)
  if(fVar) iNum = i;
}

og se hvad iNum ender som :)

Måske ikke det bedst gennemtænkte eksempel, men tro mig True/False er meget anvendeligt.
Avatar billede jakoba Nybegynder
20. marts 2002 - 23:13 #2
Hvis hasQT ikke bliver stat false først vil variablen slet ikke eksistere hvis den ikke bliver sat true.

det er i dette tilfælde mere korrekt en nødvendigt da javascript i alle fald returnerer false hvis man tester på en udefineret variabel

generelt vil
var var1 = talUligFra0;
var var1 = enStrengDerIkkeErTom;
var var1 = etObjekt;
alle give true hvis man tester med
  if ( var1 ) {
      // bliver udført
  }

mens
var var2 = 0;
var var2 = "";
var var2 = null;
// og var2 slet ikke defineret
vil give false
  if ( var1 ) {
    // bliver ikke udført
  }

men i nogen versioner af javascript vil
var var3 = "false";
ikke give true (fordi strengen ikke er tom) men istedet false (fordi det står der)

mvh JakobA
Avatar billede jakoba Nybegynder
20. marts 2002 - 23:22 #3
mht  return true og return false  er det sådan i javascript at ALTING har en værdi

sætningen:
  fire = 2+2;
har værdien 4, den bliver blot ikke brugt til noget her.

og subroutiner har også en værdi. med
  return noget
bestemmer du at den værdi skal være noget

hvis du ikke skriver nogen return i en subroutine er det et løfte om at du heller ikke vil bruge den subroutine som værdi et andet sted.

prøv den indbyggede confirm() funktion:
  if ( confirm( "er jeg smukkest i landet her" ) {
    alert( "det var godt" )
  } else {
    alert( "jeg må se at få gjort noget ved snehvide" )
  }

mvh JakobA
Avatar billede jakoba Nybegynder
20. marts 2002 - 23:27 #4
Ups. jeg glemtet en ) i linien
  if ( confirm( "er jeg smukkest i landet her" ) ) {
Avatar billede mik789 Nybegynder
20. marts 2002 - 23:27 #5
tak for grundige svar - skal vist lige have tid til at tykke dem grundigt igennem ||:-/

mik
Avatar billede mik789 Nybegynder
20. marts 2002 - 23:30 #6
jakoba> lige et opklarende sp.: hvad er en "subroutine"?
Avatar billede jakoba Nybegynder
21. marts 2002 - 00:06 #7
det er det samme som en funktion
Og i java kalder man dem metoder :-)

kært barn har mange navne
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