Permalänk

Enkel javascript fråga...

Jag sitter och försöker lära mig javascript men jag blir inte klok på globala variabler.
Kanske kan någon av er hjälpa mig få rätsida på mitt problem.

Jag har ett simpelt javascript som ska alternera värdet på variabeln "switch" mellan "0" och "1" via en knapptryckning. Men det enda som händer är att variabeln ändras från "undefined" till "1".
Har någon en aning om vad jag gjort för fel så berätta gärna för mig!

Tack!

Html dokument:

<html> <head> <title>Datumtest</title> <script type="text/javascript" src="test.js"></script> <script type="text/javascript"> var switch; </script> </head> <body bgcolor="white" text="black"> <form> <input type="button" value="Tryck" onclick="checkdate()" /> </form> </body> </html>

Javascript test.js:

function checkdate() { if(switch == 1) { var switch = 0; alert('Switch är satt till: ' + switch); return; } else { var switch = 1; alert('Switch är satt till: ' + switch); return; } }

Permalänk

Definera switch före test.js till att börja med.

<script type="text/javascript">
var switch;
</script>
<script type="text/javascript" src="test.js"></script>

Sen så definerar du ju om variablen hela tiden när du skriver var switch = 0,

ändra de raderna till switch = 0 / 1

Permalänk

Tack för snabbt svar!
Tanken är ju att definiera om switch så att när man trycker på knappen ändras switch från 0 till 1 eller vice versa.

Om du förstår.

/P

Permalänk

Ja men när du skriver var swtich så skapar du en NY variabel switch varje gång. När du sätter värdet skriver du inte var.

var switch = 0; function checkdate() { if(switch == 1) { switch = 0; alert('Switch är satt till: ' + switch); return; } else { switch = 1; alert('Switch är satt till: ' + switch); return; } }

Permalänk

Ah!

Tack för hjälp!
Jag trodde man var tvungen att skriva "var" så fort man definierade om en variabel. Stupid brain!
Det funkar klockrent nu i alla fall!

Permalänk
Medlem

Man behöver ju egentligen aldrig definera en variabel med var. Däremot är det en bra vara att göra det så man inte skriver över likadana variablar då var minVariabel = 'hej'; kan endast användas i sitt egna scope (Explaining JavaScript scope and closures - Robert's talk)

Tänkte börja dra upp exempel men läs istället dom exempel som finns på sidan jag länkade till.