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 ]