@echelon_: E no co Ty, operator trójskładnikowy (1) to świetna sprawa. Jak dla mnie jest to w niektórych przypadkach dużo bardziej czytelne niż trzaskanie if/else.
Swoją drogą ten przykład co podali w ogóle się nie nadaje bo wystarczy porównanie samo przypisać i ono już zwróci true/false ;)
Nie widzę sensu zastawiania takich pułapek na siebie i kogoś kto będzie współużytkował taki kod.
Każdy normalny człowiek pisze wersję dłuższą, bardziej czytelną, a kompilator JavaScriptu (kompilacja JavaScript -> JavaScript) upraszcza zapis do wersji podanej w tym przykładzie.
@a_r_a_s: To nie jest kompilator. Ktos wprowadza male zamieszanie nazywajac optymalizator kompilatorem. Pliki min.js to skompresowany javascript i nic wiecej. Min.js to efekt minifikacji i nie ma nic wspolnego z kompilacja.
@kulmegil: Właściwie to nie wiem za co dostajesz plusy, akurat ten "shorthand", jakkolwiek ta nazwa nie pasuje tutaj, jest poprawny - w JS rolę tablic asocjacyjnych pełnią zwykłe obiekty i to ich powinno sie w tym celu używać.
To, co jest przedstawione w punkcie 4 jako longhand powinno się nazywać raczej "example of completely misunderstanding of JS arrays (don't do this)".
10 do tablic nie używa się pętli for-in. Kropka.
13 - przecież to jakaś tragedia...
Niestety, ale zakop. Część to jakieś podstawy (6 - serio?) w dodatku dziwne jest nazywanie tego "short-" i "longhandy", skoro w kilku miejscach jest po prostu pokazane jakiego kodu nie powinno się używać (to
@nudnyuser: ogólnie to ja jestem zdania że jesli ktoś wie co robi i jest świadom tego jak działa for..in to przecież mu nie zabronię tego używać. Tylko że JS jest takim językiem, że często ludzie nie wiedzą jak coś działa, ale używają, bo działa. Więc są dwie drogi: albo nauczą się dokładnie o for..in, o łańcuchu prototypów i właściwościach non-enumerable, albo nie będą używac for..in do tablic. Kwestia wyboru :>
Myślałem, że będzie tu coś przydatnego, niestety większość tych "tricków" tu zawartych to podstawy albo javascriptu (1, 3, 4, 7, 10, ) lub programowania (5, 6, 8, 15, 16) w ogóle. Jeżeli dla kogoś większość z tych rzeczy to nowości to chyba czas wziąć do ręki jakiś prosty kurs czy tutek a nie bezmyślnie kopiować przykłady z dokumentacji jQuery.
Przebywam dużo wśród programistów i obserwuję jak w ogromnym stopniu zastępują polskie słowa obcymi, zazwyczaj angielskimi. Dlaczego? Bo łatwiej? Bo profesjonalnie? Bo nie znają (już?) polskich słów?
Tak czy inaczej, to dla mnie smutne że na własnym podwórku zapominamy o polskim nawet tam, gdzie z powodzeniem można go używać
@smutnyAndrzej: Mówimy tu o pojęciach dotyczących programowania, niektóre terminy są jednoznaczne i przekładanie ich na język inny niż angielski mija się z celem. Programiści podświadomie używają takich słów z jakimi spotykają się w dokumentacji, w rozmowach z klientem (bardzo często zagranicznym), i o żadnym szpanowaniu engliszem raczej nie ma tu mowy. Biorąc rzecz od tyłu strony, pojęcia przetłumaczone na polski byłyby strasznymi potworkami językowymi, bo po prostu nie ma odpowiedników w
Komentarze (53)
najlepsze
5. Łatwo przemycić babola w takim kodzie. Lepiej już każdą zmienną do oddzielnej linijki.
9. Trzeba spojrzeć w ciało funkcji żeby wiedzieć co przyjmuje.
12. Ponownie to mi się wydaje lepsze chociaż w LongHand zamienił bym to co jest w ifach żeby nie było negacji.
Resztę przejrzałem pobieżnie.
Ogólnie raczej złe praktyki bo autor stara się kod maksymalnie skrócić utrudniając czytanie go. A kod
big = (x > 10) ? "greater 10" : (x < 5) ? "less 5" : "between 5 and 10";
to zbrodnia na czytelności kodu.
Poza tym większość tych porad to podstawy, a nie żadne skróty i powinny znajdować się w każdym kursie.
Swoją drogą ten przykład co podali w ogóle się nie nadaje bo wystarczy porównanie samo przypisać i ono już zwróci true/false ;)
Każdy normalny człowiek pisze wersję dłuższą, bardziej czytelną, a kompilator JavaScriptu (kompilacja JavaScript -> JavaScript) upraszcza zapis do wersji podanej w tym przykładzie.
big = (x > 10) ? "greater 10" : (x < 5) ? "less 5" : "between 5 and 10";
to powinni z roboty wywalać.
var is = !!a;
I z tego co kojarzę drugi zapis jest prawilny bo w array powinno się trzymać tylko proste tablice.
10 do tablic nie używa się pętli for-in. Kropka.
13 - przecież to jakaś tragedia...
Niestety, ale zakop. Część to jakieś podstawy (6 - serio?) w dodatku dziwne jest nazywanie tego "short-" i "longhandy", skoro w kilku miejscach jest po prostu pokazane jakiego kodu nie powinno się używać (to
Przebywam dużo wśród programistów i obserwuję jak w ogromnym stopniu zastępują polskie słowa obcymi, zazwyczaj angielskimi. Dlaczego? Bo łatwiej? Bo profesjonalnie? Bo nie znają (już?) polskich słów?
Tak czy inaczej, to dla mnie smutne że na własnym podwórku zapominamy o polskim nawet tam, gdzie z powodzeniem można go używać
Ja Ci powiem że są wyjątki, bo pracując w pewnej firmie cały dział musi pisać kod (zmienne, klasy, funkcje) w języku polskim :)