Article View: pl.comp.lang.javascript
Article #50991Re: Funkcja korzystająca z instrukcji switch
From: Vax
Date: Tue, 24 Jan 2012 12:05
Date: Tue, 24 Jan 2012 12:05
34 lines
2683 bytes
2683 bytes
W dniu 2012-01-23 11:51, Cezary Tomczyk pisze:
> W dniu 2012-01-23 09:21, NKAB - pisze:
> [...]
>
> A ja dodam tylko tyle, że można sobie przetestować szybkość switch-a,
> if-a i ternary:
>
> http://jsperf.com/ternary-vs-if-vs-switch
>
> Ogólnie mi wyszło, że switch jest najwolniejszy :/
Tylko umyka taki maleńki niuansik, że switch potrafi załatwić bardziej
zawiłą logikę - sprowadzanie go wyłącznie do roli zamiennika serii
zagnieżdżonych warunków to akurat domena amatorów.
Owszem, to czyni takie zastosowanie _najczęstszym_.
Owszem, switch pozwala uczynić kod czytelniejszym.
Ale... do jasnej cholery, switch nie jest _tylko_ ekwiwalentem
powyższego, i mimo, że takie zastosowanie wydać się może
"najoczywistsze", to jednak wypada zdawać sobie sprawę, że działa zgoła
odmiennie i tylko użycie break sprawia, iż zachowuje się w ten sposób.
switch(4){
default:alert('ani raz, ani dwa ani trzy');
case (alert('test raz'),1):alert('echo raz')
case (alert('test dwa'),2):alert('echo dwa')
case (alert('test trzy'),3):alert('echo trzy')
}
polecam sprawdzić różne wartości switch oraz przesuwanie linijki z
default na różne pozycje i wtrącenie sobie jakiegoś/jakichś break tu czy
tam - może niektórzy wreszcie skojarzą jak to działa ;)
v.
Technical Details
Message-ID:
<jfm6qp$9b7$1@news.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mailReferences:
<a06e9e8f-2ae6-41a8-b804-31e3ef49e304@d10g2000vbh.googlegroups.com> <jeebqu$2r0$1@inews.gazeta.pl> <jel0oj$hbq$1@news.icm.edu.pl> <jeouk7$1m$1@inews.gazeta.pl> <jep6t6$ges$1@mx1.internetia.pl> <jepa9c$hn4$1@news.icm.edu.pl> <jf0lrh$2k0$1@inews.gazeta.pl> <jf0ucr$gs4$1@mx1.internetia.pl> <jf39d9$mf$1@inews.gazeta.pl> <jf49km$jko$1@news.icm.edu.pl> <jf625l$s3j$1@inews.gazeta.pl> <jf6c82$uhd$1@news.icm.edu.pl> <jfbcg2$evr$1@inews.gazeta.pl> <jfbl07$3r5$1@news.icm.edu.pl> <jfj59n$sir$1@inews.gazeta.pl> <jfje3o$q98$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail From: Vax <mail@zepsul.sie> Newsgroups: pl.comp.lang.javascript Subject: Re: Funkcja korzystająca z instrukcji switch Date: Tue, 24 Jan 2012 13:05:53 +0100 Organization: ICM, Uniwersytet Warszawski Lines: 34 Message-ID: <jfm6qp$9b7$1@news.icm.edu.pl> References: <a06e9e8f-2ae6-41a8-b804-31e3ef49e304@d10g2000vbh.googlegroups.com> <jeebqu$2r0$1@inews.gazeta.pl> <jel0oj$hbq$1@news.icm.edu.pl> <jeouk7$1m$1@inews.gazeta.pl> <jep6t6$ges$1@mx1.internetia.pl> <jepa9c$hn4$1@news.icm.edu.pl> <jf0lrh$2k0$1@inews.gazeta.pl> <jf0ucr$gs4$1@mx1.internetia.pl> <jf39d9$mf$1@inews.gazeta.pl> <jf49km$jko$1@news.icm.edu.pl> <jf625l$s3j$1@inews.gazeta.pl> <jf6c82$uhd$1@news.icm.edu.pl> <jfbcg2$evr$1@inews.gazeta.pl> <jfbl07$3r5$1@news.icm.edu.pl> <jfj59n$sir$1@inews.gazeta.pl> <jfje3o$q98$1@inews.gazeta.pl> NNTP-Posting-Host: 89-68-3-67.dynamic.chello.pl Mime-Version: 1.0 X-Trace: news.icm.edu.pl 1327406745 9575 89.68.3.67 (24 Jan 2012 12:05:45 GMT) X-Complaints-To: usenet@news.icm.edu.pl NNTP-Posting-Date: Tue, 24 Jan 2012 12:05:45 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 In-Reply-To: <jfje3o$q98$1@inews.gazeta.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit