webForumDet fria alternativet

Kolla om variabel finns

11 svar · 314 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200013 890 inlägg
#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.

PalleMedlem sedan apr. 20003 174 inlägg
#2

Kanske?

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

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

Web-TorMedlem 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].

nitro2k01Medlem 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
Web-TorMedlem 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.

nitro2k01Medlem 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?

nitro2k01Medlem 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");
}
dectgapMedlem 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.

nitro2k01Medlem 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

dectgapMedlem 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.

Web-TorMedlem sedan nov. 200013 890 inlägg
#12

Tack grabbar!
Det funkar fint nu. :)

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