W ostatnim poście przedstawiłem implementacje klasy, odzwierciedlającej popularna strukturę danych – stos. Teraz przedstawię alternatywną wersję.
Czytaj dalej Struktury danych w JavaScript – Stos. Wersja alternatywna
W ostatnim poście przedstawiłem implementacje klasy, odzwierciedlającej popularna strukturę danych – stos. Teraz przedstawię alternatywną wersję.
Czytaj dalej Struktury danych w JavaScript – Stos. Wersja alternatywna
Chociaż pisanie gier to świetna zabawa i dobry sposób na naukę programowania, to nie samymi grami człowiek żyje. Aby utrwalić wiedzę zdobytą na studiach postanowiłem napisać na blogu serię artykułów. Przedstawię w nich struktury danych w JavaScripcie – stos, to pierwsza opisana struktura. Jest to bardzo popularny, a zarazem prosty system reprezentowania danych. Opiszę na jakich zasadach działa jakie ma możliwości. Oczywiście pokażę też implementacje stosu w JavaScripcie.
Dziś krótka notka o tym, co ‚odkryłem’ dziś w pracy. Musiałem odnaleźć sposób na Wywoływanie właściwości obiektu kluczem znajdującym się w tablicy. O co chodzi? Już tłumacze. Czytaj dalej Wywoływanie właściwości obiektu kluczem znajdującym się w tablicy
JavaScript przekazywanie wartości funkcjom
We wcześniejszym poście opisałem jak działa mechanizm zmiennych typu prostego i referencyjnego. Podkreśliłem na co należy uważać i czego trzeba unikać. W kolejnym poście opisałem jak radzić sobie z kopiowaniem tablic jeśli potrzebujemy tak zwanej „głębokiej kopii”.
Dziś napiszę o kolejnym ważnym aspekcie języka JavaScript, mającym związek z typami zmiennych. Jest to kolejna rzecz spędzająca sen z powiek początkującym programistom tego języka. Chodzi o przekazywanie typów referencyjnych i prosty jako argumenty funkcji.
Czytaj dalej Przekazywanie funkcjom typów prostych i referencyjnych
Ostatnio w pracy, kolega pokazał mi problem programistyczny, który próbował rozwiązać w Pythonie. Miał napisać algorytm, który znajduje najdłuższy ciąg znaków uporządkowanych alfabetycznie w łańcuchu znaków. Czyli na przykład, z łańcucha „abcaxydefkkab” powinno zostać zwrócone „defkk”.
Postanowiłem spróbować rozwiązać ten problem w JavaScripcie.
Czytaj dalej Najdłuższy uporządkowany alfabetycznie ciąg znaków
Dziś krótki wpis. Uzupełnienie poprzedniego posta, opisującego podstawowe różnice pomiędzy typami prostymi a referencyjnymi.
Wyjaśniłem tam dlaczego nie możemy skopiować tablicy przy użyciu operatora ‚=’. Taka operacja przypisuje do zmiennej po lewej stronie operatora referencje do której prowadzi zmienna po prawej stronie. Nie kopiuje tablicy tak jak w przypadku zmiennych typu prostego, jak ‚number’ czy ‚boolean’.
Zamiast tego otrzymamy tak zwaną „płytką kopię” (shallow copy). Wszelkie zmiany, które program wykona w użyciu nowej płytkiej kopii, będą też odzwierciedlone w oryginale. Obie zmienne tak naprawdę wskazują na ten sam obiekt.
Dzieje się tak dlatego, że wszystkie obiekty w JavaScripcie (tablica też jest obiektem) są typami referencyjnymi. Jak się nad tym zastanowimy, ma to sens, ponieważ zamiast kopiować obiekt, lepiej jest stworzyć jego nową instancję za pomoc operatora ‚new’.
Z doświadczenia wiem jednak, że czasem przydaje się zrobić ‚głęboką kopię’ istniejącej już tablicy z całą jej zawartością. Skoro nie mamy takiej możliwości, to możemy stworzyć ją sobie sami!
Czytaj dalej Głębokie kopie tablic