🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #50992

Re: Funkcja korzystająca z instrukcji switch

#50992
From: Cezary Tomczyk
Date: Tue, 24 Jan 2012 12:26
45 lines
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-mail
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>

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