webForumDet fria alternativet

standardvärde för funktionsargument

8 svar · 348 visningar · startad av M@rtin

M@rtinMedlem sedan dec. 19992 085 inlägg
#1

Hur sätter man default values på funktionsargument i javascript?

typ function test(var="bla")

så att variabeln var får värder "bla" om man anropat funktionen utan argument.

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#2

Är ganska säker på att det inte går. Men man kan skriva så här:

function foo(bar)
{
	if (bar == null) bar = 123;
	
	alert(bar);
}
M@rtinMedlem sedan dec. 19992 085 inlägg
#3

Ah ja det funkade ju faktiskt, trodde inte de accepterade att man inte skickade med argument.

Tycker dock att det är lite dåligt att det inte går på ett snyggare sätt :/

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

Eriks exempel ska egentligen inte funka. Detta är teoretiskt sett ett mer korrekt sätt att gör detta på:

function foo(bar)
{
	if (typeof bar == "undefined") bar = 123;
	
	alert(bar);
}
M@rtinMedlem sedan dec. 19992 085 inlägg
#5

Okej, kör på undefined istället då :)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#6

M@rtin skrev:

Okej, kör på undefined istället då :)

Och glöm inte typeof före.

@ndersMedlem sedan juni 200032 969 inlägg
#7

nitro2k01 skrev:

M@rtin skrev:

Okej, kör på undefined istället då :)

Och glöm inte typeof före.

Borde det inte vara typeof(bar) istället för typeof bar?

nitro2k01Medlem sedan aug. 20039 342 inlägg
#8

@nders skrev:

nitro2k01 skrev:

M@rtin skrev:

Okej, kör på undefined istället då :)

Och glöm inte typeof före.

Borde det inte vara typeof(bar) istället för typeof bar?

Nej! Det behövs inte, eftersom typeof är en unär operator, som !, ~, ++ och --.
Men det skadar förstås inte, lika lite som det skadar att skriva t ex y=(5)+(x);
För övrigt tar typeof minsta möjliga scope, så man behöver inte skriva if ((typeof bar) == "undefined") heller.

@ndersMedlem sedan juni 200032 969 inlägg
#9

okay, tack, nitro! :)

126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)