Till Startsidan
JavaScript.nu / JavaScript-kurs / Logiska operatorer

LÄR DIG SPRÅKET JAVASCRIPT
Logiska operatorer

Det du här ska lära dig är hur man gör så att olika saker händer då vissa variabler har olika värden. Dvs, har en variabel ett värde så händer en sak, har det ett annat värde sker något annat. T.ex. så ska du lära dig att skapa ett script som fungerar såhär:
Först kommer en besökare till din sida. Du frågar efter hans namn och hans namn kommer på sidan (inget konstigt alltså). Skulle han nu inte skriva in ett namn så ger du besökaren ett speciellt meddelande. Du kan också ge honom ett meddelande om han skriver in ett namn som t.ex. Bill Gates eller Göran Persson.

Ovanstående script kan du göra med detta JavaScript (vill du även testa scriptet kan du trycka här):

<SCRIPT LANGUAGE="JavaScript">
<!--

var namn=prompt("Var vänlig och skriv in ditt namn","Ditt namn");

if ((namn == "Bill Gates") || (namn == "Göran Persson"))
  {
  alert("Visst att du heter " + namn + ".");
  }

if (namn == null)
  {
  alert("Varför vill du inte skriva in ditt namn?");
  }

document.write("Välkommen " + namn + ", du vet väl att du får ett speciellt meddelanden om du trycker på Cancel eller om du skriver Göran Persson eller Bill Gates.");

//-->
</SCRIPT>
OK, vad händer och varför?
Till att börja med så ska jag påminna dig om JavaScriptets känslighet med StOrA OcH SmÅ bokstäver, så skriver du bill gates händer inget speciellt, till skillnad mot om du skriver Bill Gates, vilket får till följd att en ruta (ALERT) öppnas och säger:
Visst att du heter Bill Gates.

Ok, låt mig rad för rad gå igenom scriptet och berätta vad som händer:
var namn=prompt("Var vänlig och skriv in ditt namn","Ditt namn")
Detta MÅSTE du känna igen (annars bör du hoppa till kapitel 1 igen). Skulle du inte känna igen det till 100% gör det inget, bara du vet vad det var på ett ungefär. Nåja,
var ger ett värde åt namn genom att ett promptfönster (prompt (= man kan trycka på OK och Cancel, men också fylla i ett namn)) öppnas och besökaren kan fylla i ett värde. Nu har alltså namn fått det värde som besökaren fyllt i (observera att "värde" inte ska förknippas med ett matematiskt värde (vilket det i och för sig också kan vara), utan med ett värde som är, kort sagt, några tecken (t.ex. ett namn, en mening eller kanske ett tal)).

if ((namn == "Bill Gates") || (namn == "Göran Persson"))
Denna rad gör så att en sak (som beskrivs senare i scriptet (= mellan { och })) ska hända om namnets värde är Bill Gates ELLER Göran Persson. Att det är ELLER beror på att det står ||. Skulle det stå && skulle det betyda OCH. Men som du märker så kan man inte använda && här eftersom namn inte kan ha både värdet Bill Gates och Göran Persson. Skulle jag bara vilja ha Bill Gates som värdet som namnet ska ha för att en viss sak ska hända skriver jag:
if (namn == "Bill Gates")
Det som är skillnaden är att namn == "xxx" i det senaste nämnda fallet inte omges av varsin parentes. Eftersom det inte finns 2 parenteser så behövs inte heller || (Alt Gr + <) mellan alla parenteserna.
Skulle jag vilja skulle jag kunna sätta in hur många "ifar" som helst. Både fler namn == "xxx" i de redan nu utsatta ifarna (vad nu if i bestämd pluralis form ska kallas) och fler hela ifar (med tillhörande { och } etc.).

  {
  alert("Visst att du heter " + namn + ".");
  }

Först har vi { som berättar att allt från och med { till nästa } ska hända. Jag har valt att bara skriva en "alert" mellan { och }. Alert gjorde så att en ruta med endast en knapp och text ska komma upp. Observera att jag har skrivit " + namn + " i alertrutan, vilket gör att värdet man skriver in kommer att stå i denna alertruta (kom ihåg att denna ruta endast visas om man heter Bill Gates eller Göran Persson, alltså kan detta " + namn + " endast visa Göran Persson eller Bill Gates som värde). Att jag har skrivit:

if ((namn == "Bill Gates") || (namn == "Göran Persson"))
  {
  alert("Visst att du heter " + namn + ".");
  }
...Är precis som att skriva..:
if (namn == "Bill Gates")
  {
  alert("Visst att du heter Bill Gates.");
  }

if (namn == "Göran Persson")
  {
  alert("Visst att du heter Göran Persson.");
  }
...Fast det är mycket lättare att skriva som jag har gjort (vilket du förhoppningsvis ser).

Nu har vi kommit till raden med texten:
if (namn == null)

Varför finns det inte citattecken runt null? Har jag bara glömt dem?
Nej, det är så att om man trycker på Cancel eller stänger prompt-fönstret så får namn värdet "null", men det är inte samma sak som att skriva null för hand. Så om du skriver "null" som värde kommer du att få namnet null och inget speciellt kommer att hända. Trycker du däremot på Cancel (alt. bara stänger prompt-fönstret (=där man skriver in sitt namn)) får du namnet "null", precis som förut alltså, men du får även ett alertmeddelande (bara en OK-knapp och text) där det står Varför vill du inte skriva in ditt namn?.
Vad skulle nu hända om jag istället för bara null skrev "null" (inom citat). Jo, det skulle hända som förut fast tvärtom, alltså om man skrev null för hand så skulle en alertruta säga:
Varför vill du inte skriva in ditt namn?
...Medan inget skulle hända om man skulle trycka på Cancel eller stänga prompt-fönstret (naturligtvis får namnet värdet null).



Nu har du allt lärt dig mycket, men än återstår mycket tills den totala JavaScriptläran. :)
Ja, ja, strunt i poesin och vips till nästa sida.






Copyright © Omid Rouhani 1997-2022; Alla rättigheter reserverade.
Guider: [ HTML guide ] - [ JavaScript guide ] - [ DHTML guide ] - [ Perl guide ] - [ Sitemap ]