🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Funkcja korzystająca z instrukcji switch

#50991
From: Vax
Date: Tue, 24 Jan 2012 12:05
34 lines
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-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>

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