Article View: pl.comp.lang.javascript
Article #50992Re: Funkcja korzystająca z instrukcji switch
From: Cezary Tomczyk
Date: Tue, 24 Jan 2012 12:26
Date: Tue, 24 Jan 2012 12:26
45 lines
3175 bytes
3175 bytes
W dniu 2012-01-24 13:05, Vax pisze:
> 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.
No właśnie umknął jeszcze jeden maleńki niuansik, że ja podałem link do
testu wydajnościowego, a nie pokazu "jak profesjonalnie zarządzać
warunkami w JavaScripcie" ;-)
> 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 ;)
Z mojego punktu widzenia to można schrzanić zarówno if-a, jak i
switch-a. Nie ma złotej reguły na obie metody.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
Technical Details
Message-ID:
<jfm816$gud$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!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> <jfm6qp$9b7$1@news.icm.edu.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Cezary Tomczyk <ctomczyk.pl@gazeta.pl> Newsgroups: pl.comp.lang.javascript Subject: Re: Funkcja korzystająca z instrukcji switch Date: Tue, 24 Jan 2012 13:26:14 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 45 Message-ID: <jfm816$gud$1@inews.gazeta.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> <jfm6qp$9b7$1@news.icm.edu.pl> NNTP-Posting-Host: gmq130.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1327407974 17357 83.3.68.130 (24 Jan 2012 12:26:14 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 24 Jan 2012 12:26:14 +0000 (UTC) X-User: ctomczyk.pl In-Reply-To: <jfm6qp$9b7$1@news.icm.edu.pl> User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:9.0) Gecko/20111222 Thunderbird/9.0.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit