Thread View: be.comp.programming
4 messages
4 total messages
Started by CiNdY_V
Mon, 30 Dec 2002 16:01
JavascriptBeginster !
Author: CiNdY_V
Date: Mon, 30 Dec 2002 16:01
Date: Mon, 30 Dec 2002 16:01
34 lines
1994 bytes
1994 bytes
Hoi newsgr.
Heb volgende oefening in elkaar gestoken maar weet niet of ik het goed doe
zo.
Het werkt wel, maar mag het zo,of is er een betere oplossing?
Had eerst het probleem dat jaar "geparst" moet worden zelf gevonden, na veel
ergernis. ;-)
Zie script:
var nm1 = "Piet";
var nm2 = "Els";
var trouwjaar = 1990;
var jaar;
jaar = window.prompt("Geef hier het jaar in!","");
var getal;
getal = parseInt(jaar,10);
var test = getal-trouwjaar;
switch(test)
{
case test = 12:document.write(nm1+' en '+nm2+', dit jaar 12 jaar
getrouwd.');
break;
case test = 25:document.write(nm1+' en '+nm2+', dit jaar zilveren
bruiloft.');
break;
case test = 50:document.write(nm1+' en '+nm2+', dit jaar gouden
bruiloft.');
break;
case test = 60:document.write(nm1+' en '+nm2+', dit jaar diamanten
bruiloft.');
break;
default: document.write("<br>Proficiat !");
break;
}
Alle reacties zijn welkom! Grtz CiNdY.
Re: JavascriptBeginster !
Author: Joris Janssens
Date: Mon, 30 Dec 2002 16:57
Date: Mon, 30 Dec 2002 16:57
92 lines
3862 bytes
3862 bytes
"CiNdY_V" <CiNdY_Vastmans@hotmail.com> wrote in message
news:v5_P9.79877$Ti2.11181@afrodite.telenet-ops.be...
> Hoi newsgr.
> Heb volgende oefening in elkaar gestoken maar weet niet of ik het goed
doe
> zo.
> Het werkt wel, maar mag het zo,of is er een betere oplossing?
> Had eerst het probleem dat jaar "geparst" moet worden zelf gevonden, na
veel
> ergernis. ;-)
> Zie script:
> var nm1 = "Piet";
> var nm2 = "Els";
> var trouwjaar = 1990;
> var jaar;
> jaar = window.prompt("Geef hier het jaar in!","");
> var getal;
> getal = parseInt(jaar,10);
> var test = getal-trouwjaar;
>
> switch(test)
> {
> case test = 12:document.write(nm1+' en '+nm2+', dit jaar 12 jaar
> getrouwd.');
> break;
> case test = 25:document.write(nm1+' en '+nm2+', dit jaar zilveren
> bruiloft.');
> break;
> case test = 50:document.write(nm1+' en '+nm2+', dit jaar gouden
> bruiloft.');
> break;
> case test = 60:document.write(nm1+' en '+nm2+', dit jaar diamanten
> bruiloft.');
> break;
> default: document.write("<br>Proficiat !");
> break;
> }
Er is niks echt "mis" met dit script en ik kan zo direct geen varianten
bedenken die een echte verbetering zouden zijn.
2 kleine puntjes, maar geen fouten:
1. Het kan compacter geschreven worden:
var jaar = parseInt(window.prompt("Geef hier het jaar in!",""),10);
daarmee bespaar je ook op een variabele terwijl het programma toch nog
duidelijk/overzichtelijk blijft, maar da's ook wel een kwestie van
persoonlijk stijl en ervaring enzo...
2. in de praktijk ga je controleren of de gebruiker wel echt een getal heeft
ingevoerd, omdat anders het programma volledig in de mist zou kunnen
lopen...
Als de gebruiker iets typt waarvan geen integer gemaakt kan worden, dan
geeft de functie parseInt een NaN (Not a Number) terug. Om daarop te testen
bestaat de functie isNaN() die true wordt indien de variabele een NaN is.
in dit geval bijvoorbeeld:
...
if (isNaN(jaar)) {
window.alert("ongeldige invoer");
}
else {
test=jaar-trouwjaar;
...
}
happy scripting :)
PS. Door dit bericht ook in be.comp.internet.design te posten doe je aan
multiposting wat tegen de gangbare regels is. Het is beter je te beperken
tot 1 nieuwsgroep.
be.comp.programming lijkt me de meest geschikte zolang het over de syntax
van Javascript gaat.
zie:
http://pandorafaq.webhop.net/faq3.html#CROSSPOST
voor info over multiposten/crossposten
--
Joris "flotspe" Janssens
http://www.xhtml.be/inferno/
http://pandorafaq.webhop.net/
ja, ik weet dat mijn sig ook niet volgens de regels is :)
Re: JavascriptBeginster !
Author: Wimjan
Date: Mon, 30 Dec 2002 18:41
Date: Mon, 30 Dec 2002 18:41
47 lines
2666 bytes
2666 bytes
Joris Janssens schreef:
> "CiNdY_V" wrote
> > Heb volgende oefening in elkaar gestoken maar weet niet of ik het goed
> > doe zo. Het werkt wel, maar mag het zo,of is er een betere oplossing?
> >
[...]
> > switch(test)
> > {
> > case test = 12:
[...]
> Er is niks echt "mis" met dit script en ik kan zo direct geen varianten
> bedenken die een echte verbetering zouden zijn.
>
Weet je zeker dat het switch-statement zo toegestaan is? Volgens de
documentatie van Netscape op <http://inventio.nl/redir/switch> moet je
achter 'case' een waarde geven die vergeleken wordt met de waarde die je
bij 'switch' opgeeft. Niet een toekenning zoals de OP nu heeft dus.
Maar het lijkt me dat de browser waar je (CiNdY_V) in hebt getest je ook
al had verteld dat er iets mis was met je scriptje. In Internet Explorer
bijvoorbeeld kun je dat vaak zien doordat er linksonderin je scherm een
geel icoontje verschijnt (waar je op kunt dubbelklikken om de precieze
foutmelding te zien).
> PS. Door dit bericht ook in be.comp.internet.design te posten doe je aan
> multiposting wat tegen de gangbare regels is. Het is beter je te beperken
> tot 1 nieuwsgroep.
>
Het was mij ook al opgevallen dat CiNdY_V vraag twee keer stelde en in
beide groepen mensen de moeite namen om een antwoord te geven, niet
wetende dat dat antwoord vaak al lang gegeven was in de andere groep.
Multiposten is inderdaad wat asociaal.
> zie:
> http://pandorafaq.webhop.net/faq3.html#CROSSPOST
> voor info over multiposten/crossposten
Groet,
Wimjan
--
Iemands e-mailadres kwijt? Probeer m'n meta e-mail zoeker eens op
<http://inventio.nl/metanamesearch/>
Re: JavascriptBeginster !
Author: Joris Janssens
Date: Mon, 30 Dec 2002 19:39
Date: Mon, 30 Dec 2002 19:39
49 lines
3091 bytes
3091 bytes
"Wimjan" <news+@inventio.nl> wrote in message
news:MPG.187ab1b6ded8230398a0ef@news.cis.dfn.de...
> Joris Janssens schreef:
> > "CiNdY_V" wrote
>
> > > Heb volgende oefening in elkaar gestoken maar weet niet of ik het
goed
> > > doe zo. Het werkt wel, maar mag het zo,of is er een betere oplossing?
> > >
> [...]
>
> > > switch(test)
> > > {
> > > case test = 12:
> [...]
>
> > Er is niks echt "mis" met dit script en ik kan zo direct geen varianten
> > bedenken die een echte verbetering zouden zijn.
> >
> Weet je zeker dat het switch-statement zo toegestaan is? Volgens de
> documentatie van Netscape op <http://inventio.nl/redir/switch> moet je
> achter 'case' een waarde geven die vergeleken wordt met de waarde die je
> bij 'switch' opgeeft. Niet een toekenning zoals de OP nu heeft dus.
>
> Maar het lijkt me dat de browser waar je (CiNdY_V) in hebt getest je ook
> al had verteld dat er iets mis was met je scriptje. In Internet Explorer
> bijvoorbeeld kun je dat vaak zien doordat er linksonderin je scherm een
> geel icoontje verschijnt (waar je op kunt dubbelklikken om de precieze
> foutmelding te zien).
dju, daar heb ik overgekeken, ook al omdat het op die manier wel degelijk
werkt: het geeft de juiste resultaten en geen foutmelding in de
Javascriptconsole van Mozilla.
Ik heb er even Javascript: The Definitive Guide (O'Reilly) op nagekeken en
het blijkt dat vanaf Javascript 1.3 het een expressie mag zijn zolang het
maar evalueert tot een string, number of boolean. Volgens de ECMAScript v3
standaard mag het eender welke expressie zijn.
Maar het lijkt me ook wel beter daar gewoon constanten te gebruiken om alle
eventuele onverwachte neveneffecten en problemen met browsers die een oudere
Javascript-versie gebruiken te vermijden.
--
Joris "flotspe" Janssens
http://www.xhtml.be/inferno/
http://pandorafaq.webhop.net/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads