webForumDet fria alternativet

Kolla om variabel finns

JavaScriptur Javascript

11 svar · 314 visningar · startad av Web-Tor

Medlem sedan nov. 200013 890 inlägg
Frågan#1
function show(type){
	if (type == // finns inte //)
		alert("Ingen variabel inskickad");
	else
		alert(type);
}

show(); ska alltså trigga if-satsen och show('foo'); ska trigga else-satsen.

Medlem sedan apr. 20003 174 inlägg
#2

Kanske?

[red]function show(type)
{
if (type)
   alert(type);
else
   alert("Ingen variabel inskickad");
}[/red]
Medlem sedan nov. 200013 890 inlägg
#3

Jo, jag testade det men då matar den ut [object].

Medlem sedan nov. 200013 890 inlägg
#4

En lite uppdatering.
Om jag anropar funktionen med show(); så funkar din kod men nu är det så att jag skapar funtionen via JavaScript med den här koden:

inp.attachEvent('onclick', show);

och då matar du ut [object].

Medlem sedan aug. 20039 342 inlägg
#5

Förstår egentligen inte din fråga, men jag tror det du letar efter är typeof

function SampleConstructor(){;}
alert(typeof SampleConstructor);	// function
var sampleObject = new SampleConstructor();
alert(typeof sampleObject );	// object
var sampleString = "Hejsan";
alert(typeof sampleString );	// string
var sampleArray = [];
alert(typeof sampleArray );	// object
var sampleNumber = 2.4;
alert(typeof sampleNumber );	// number

alert(typeof variabelSomInteFinns );	// undefined
Medlem sedan nov. 200013 890 inlägg
#6

Det jag vill åstakomma är precis det som Palle har skrivit. Fast jag vill att det ska funka även om det är ett javascript som satt ihop funktionsanropet.

Medlem sedan aug. 20039 342 inlägg
#7

Du vill alltså att den ska reagera som om ingen variabel är medskickad om funktionen kallas genom ett event?

function show(type)
{
if (type && !isObject(type) )
   alert(type);
else
   alert("Ingen variabel inskickad");
}

Vad ska skickas i type egentligen?

Medlem sedan aug. 20039 342 inlägg
#8

Efter privat prat med Tor:

function show(type)
{
if (isString(type) )
   alert(type);
else
   alert("Ingen sträng inskickad");
}
Medlem sedan sep. 20021 655 inlägg
#9

nitro2k01 skrev:

Efter privat prat med Tor:

function show(type)
{
if (isString(type) )
   alert(type);
else
   alert("Ingen sträng inskickad");
}

Dock finns det ingen isString-funktion.
Att använda typeof, som du gjorde tidigare, ska däremot gå bra.

Medlem sedan aug. 20039 342 inlägg
#10

Måste kolla mina källor bättre... isString skulle vara IE-specifik, men vid test verkar den inte ens funka där. Då får det bli så här då:

function show(type)
{
if (typeof type == "string")
   alert(type);
else
   alert("Ingen sträng inskickad");
}

Källa: http://www.crockford.com/javascript/remedial.html

Medlem sedan sep. 20021 655 inlägg
#11

nitro2k01 skrev:

Källa: http://www.crockford.com/javascript/remedial.html

Jag hittade den där sidan för några dagar sedan.
Där finns mycket bra läsning.
Dock är de funktioner som finns på just sidan du länkade till föreslagna JavaScript-/ECMA-funktioner. De finns alltså inte (med reservation för några undantag) för tillfället.

Medlem sedan nov. 200013 890 inlägg
#12

Tack grabbar!
Det funkar fint nu. :)

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