Article View: be.comp.programming
Article #6322Re: JavaScriptBeginster !!
From: Joris Janssens
Date: Mon, 30 Dec 2002 16:55
Date: Mon, 30 Dec 2002 16:55
91 lines
3670 bytes
3670 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/
Technical Details
Message-ID:
<rU_P9.79989$Ti2.10596@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!sjc-peer.news.verio.net!news.verio.net!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<v5_P9.79877$Ti2.11181@afrodite.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,496aa3572d360b16 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-12-30 08:56:05 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-08!supernews.com!sjc-peer.news.verio.net!news.verio.net!newsfeed.cwix.com!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: "Joris Janssens" <flotspe@pandora.be> Newsgroups: be.comp.programming References: <v5_P9.79877$Ti2.11181@afrodite.telenet-ops.be> Subject: Re: JavaScriptBeginster !! Lines: 93 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: <rU_P9.79989$Ti2.10596@afrodite.telenet-ops.be> Date: Mon, 30 Dec 2002 16:55:51 GMT NNTP-Posting-Host: 81.82.148.31 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1041267351 81.82.148.31 (Mon, 30 Dec 2002 17:55:51 MET) NNTP-Posting-Date: Mon, 30 Dec 2002 17:55:51 MET Organization: Telenet Internet