Variabel eller objekt?

Her kan du få hjælp og stille spørgsmål til JavaScript!
Besvar
Josefine
Geni
Geni
Indlæg:308
Tilmeldt:9. dec 2011, 16:46
Variabel eller objekt?

Indlæg af Josefine » 19. jun 2014, 22:57

Hej NP! Jeg har et lille spørgsmål angående noget kode, jeg har skrevet v.h.a. en bog...:

Kode: Vælg alt

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
		<title>Making Objects</title>
		<META name="keywords" content="" />
		<META name="description" content="" />
		<title>Just playing around with the DOM</title>
		
		<script language="JavaScript" type="text/JavaScript">
		function processForm(){
			myform = document.userDetails;
			first = document.forms[0].elements[0].value;
			last = document.forms[0].elements[1].value;
			
			 if (first == "Mor" && last == "Nielsen") {
               alert("Hej mor :D!");
           }           
           
           else if (first == "Far" && last == "Nielsen") {
               alert("Hej far!")
           }
           
           else {
              alert("Hej " + first + " " + last); 	 
           }				
			
				
		}
		
		
		</script>		
		
	</head>
	
<body>

<form name="userDetails" onSubmit="processForm()">
	<input type="text" name="fname"/>
	<input type="text" name="lname"/>
	<input type="submit" name="submit"/>
</form>

</body>

</html>
Det er én ting, jeg er lidt i tvivl om. Når jeg bare skriver "myform", "first" eller "last" og så = ... hvad er det så? Er det ikke samme princip som en variabel? Kan jeg godt bare skrive variabel 1 = 1 og så kalde den, præcis som hvis jeg havde skrevet var variabel1 = 1? Hvis ja, hvorfor i alverden bruger man så "var" overhovedet?

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Variabel eller objekt?

Indlæg af scootergrisen » 19. jun 2014, 23:17

myform, first og last er variabler i din kode.

Grunden til der kan stå var foran er fordi så deklarere man variablen.
Det skulle være anbefalet at gøre det i starten af sit script/funktion. Eventuelt sætte variablerne til null til at starte med også kan de ændres senere.

Kode: Vælg alt

function noget() {

    var myform = null,
        first = null,
        last = null;

    ...

    myform = document.userDetails;
    first = document.forms[0].elements[0].value;
    last = document.forms[0].elements[1].value;

}

Josefine
Geni
Geni
Indlæg:308
Tilmeldt:9. dec 2011, 16:46

Re: Variabel eller objekt?

Indlæg af Josefine » 19. jun 2014, 23:37

Men hvad er idéen i at skrive var overhovedet så?

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Variabel eller objekt?

Indlæg af scootergrisen » 20. jun 2014, 00:02

Det er vist fordi at man bør oprette variablen før man giver den en værdi.

Du kan skrive 'use strict'; først i din funktion så er Javascript strengere og vil give en fejl hvis ikke du har deklareret variabler før du giver dem en værdi.

Kode: Vælg alt

function () {

   'use strict';

   ...

}

Josefine
Geni
Geni
Indlæg:308
Tilmeldt:9. dec 2011, 16:46

Re: Variabel eller objekt?

Indlæg af Josefine » 20. jun 2014, 00:18

Men hvorfor gøre det hvis man kan lade være o: ?

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Variabel eller objekt?

Indlæg af scootergrisen » 20. jun 2014, 00:52

For at undgå problemer med koden.

Josefine
Geni
Geni
Indlæg:308
Tilmeldt:9. dec 2011, 16:46

Re: Variabel eller objekt?

Indlæg af Josefine » 20. jun 2014, 11:29

Såsom?

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: Variabel eller objekt?

Indlæg af Daniel » 20. jun 2014, 11:45

Vil ikke ligefrem sige at jeg er nogen ekspert på JavaScript området, men efter at have søgt lidt rundt om på nettet, så faldt jeg over den her artikel, måske den forklare dit spørgsmål. :-)

Artikel: http://scribu.net/blog/javascript-var-k ... opers.html

Josefine
Geni
Geni
Indlæg:308
Tilmeldt:9. dec 2011, 16:46

Re: Variabel eller objekt?

Indlæg af Josefine » 20. jun 2014, 15:51

Danielh007 skrev:Vil ikke ligefrem sige at jeg er nogen ekspert på JavaScript området, men efter at have søgt lidt rundt om på nettet, så faldt jeg over den her artikel, måske den forklare dit spørgsmål. :-)

Artikel: http://scribu.net/blog/javascript-var-k ... opers.html
Tak Daniel! Artiklen var meget behjælpelig. Jeg afprøvede koderne og rodede lidt rundt med det selv også - og det ser ud til, at han har ret i, at variablerne er globale, hvis man ikke sætter var foran... hvis man sætter en var foran en variabel f.eks. inde i en funktion, så bliver variablen lokal, og den bliver ikke tilgængelig, medmindre man først kalder dens funktion.
Hvis man derimod skriver var foran inde i funktionen og har en lignende variabel med samme navn (og var foran) uden for funktionen...: Hvis man ikke skriver var foran nogen af dem, så tager den faktisk variablen inde i funktionen, hvilket efter min mening er lidt mærkeligt :|

Men nu forstår jeg det da lidt bedre :)

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Variabel eller objekt?

Indlæg af scootergrisen » 20. jun 2014, 17:16

Variabler i det globale scope kan blive overskrevet/brugt af andet kode du inkludere med <script>.

Jeg brugte chart.dk counteren som havde nogle variabler i det globale scope og på et tidspunkt havde jeg også en variabel i det globale scope med samme variabelnavn sådan at min variabel blev overskrevet og jeg kunne ikke forstå hvorfor.

Besvar