#humorinformatykow #programowanie i w sumie #wtf #javascript

@vrkr - za duck.ai:
Oto lista "głupich" rzeczy związanych z operatorami porównywania w JavaScript:
1. **Używanie `==` zamiast `===`**: Operator `==` wykonuje konwersję typów, co może prowadzić do nieoczekiwanych wyników. Zawsze lepiej używać `===`, aby porównywać zarówno wartość, jak i typ.
2. **Porównywanie różnych typów bez zrozumienia**: Porównywanie wartości różnych typów (np. liczby i stringi) może prowadzić do zaskakujących wyników, np. `0 == '0'` zwraca `true`, ale `0 === '0'` zwraca `false`.
3. **Używanie `!=` zamiast `!==`**: Podobnie jak w przypadku `==`, operator `!=` wykonuje konwersję typów, co może prowadzić do błędów. Zawsze lepiej używać `!==`.
4. **Porównywanie obiektów**: Porównywanie obiektów za pomocą operatorów porównania (np. `obj1 == obj2`) porównuje referencje, a nie zawartość obiektów, co może prowadzić do nieporozumień.
5. **Używanie `Object.is()` bez zrozumienia**: `Object.is()` ma swoje specyficzne zasady porównywania (np. `NaN` jest równe `NaN`, a `-0` nie jest równe `+0`), co może być mylące.
6. **Porównywanie wartości `null` i `undefined`**: Używanie `==` do porównania `null` i `undefined` zwraca `true`, co może prowadzić do niejasności, gdy nie jest to zamierzone.
7. **Zbyt skomplikowane wyrażenia porównawcze**: Tworzenie złożonych wyrażeń porównawczych, które są trudne do zrozumienia, może prowadzić do błędów i utrudniać czytelność kodu.
8. **Ignorowanie kontekstu logicznego**: Używanie operatorów porównania w kontekście logicznym (np. w instrukcjach warunkowych) bez zrozumienia, jak działają, może prowadzić do błędnych założeń.
9. **Porównywanie z `NaN`**: `NaN` nie jest równe żadnej wartości, w tym samemu sobie, co może prowadzić do nieoczekiwanych wyników w porównaniach.
10. **Używanie operatorów porównania w pętlach bez zrozumienia**: Używanie operatorów porównania w pętlach (np. `for`) bez zrozumienia ich działania może prowadzić do nieskończonych pętli lub błędów logicznych.
Unikanie tych pułapek może pomóc w pisaniu bardziej niezawodnego i przewidywalnego kodu w JavaScript.
@vrkr - pociągnąłem tylko temat nie psując zabawy
@vrkr Tak na oko to obstawiłbym C. Myślę, że A zwraca true, B jest ciekawszym przypadkiem bo bez podania argumentów Math.min() będzie infinity, a Math.max() będzie -infinity także również będzie to true. NaN nie jest równy innemu obiektowi NaN i dalej nie muszę myśleć.
@nbzwdsdzbcps jeszcze bym obstawiał, że wszystkie są prawdziwe, ale c wygląda zbyt logicznie jak na js XD
@nbzwdsdzbcps ( ͡° ͜ʖ ͡°)
~ $ node
Welcome to Node.js v23.11.1.
Type ".help" for more information.
> Math.min() > Math.max()
true
> Math.min > Math.max
true
Metodą wykreślania poprawnych odpowiedzi:
A - w JS prawie wszystko jest obiektem więc to zwróci true
B - funkcja do zwracania najmniejszej wartości z podanych zwróci domyślnie największą możliwą liczbę a ta przeciwna odwrotnie więc też true
D - koncepcja truthy/falsy w JS gdzie przy takim porównywaniu wartości są "konwertowane" na true albo false, zero jest false a pusty string jest falsy więc zwróci true
No i pozostaje to C, gdym rozwiązywał jakiś test i nie miał dostępu od internetu to bym zaznaczył tę odpowiedź. A teraz podczas pisania tego zdania sprawdziłem na internecie dlaczego NaN != NaN i jak się nad tym pomyśli to ma to sens (jak wszystko w JS gdy zna się odpowiednio ten język, ale wtedy wszelkie te memy przestają bawić).
Dla ciekawskich tutaj są odpowiedzi:
https://stackoverflow.com/questions/10034149/why-is-nan-not-equal-to-nan
Zaloguj się aby komentować
@otoczenie_sieciowe - chyb, że sobie wciskają go w
Zaloguj się aby komentować
@fewtoast To jest picture-in-picture, w obydwu przypadkach, ale przez to, że Chrome wspiera API picture-in-picture, to mogli dodać customowy przycisk, który zmienia stan. Na Firefox przycisk do zmiany stanu picture-in-picture zobaczysz na każdym elemencie video (niekoniecznie tylko na TikTok), jeżeli source jest dłuższy niż 45s (można zmienić to w ustawieniach) i jeżeli nie ma ustawionego atrybutu disablePictureInPicture .
Link do API: https://developer.mozilla.org/en-US/docs/Web/API/Picture-in-Picture_API
@renkeri Ale to nie jest samo wideo. No już mam info że jest PiP dla HTML, nie tylko dla wideo.
Mi się PiP dla wideo w stylu Firefoksa w ogóle nie podoba, to jest bardzo zawodne. Takie pełne, pod kontrolą strony, jest lepsze, stabilniejsze.
Mi YouTube czy inne wideo wywala jak coś net przytnie na przykład i to jest męczące wtedy.
A gdyby cały HTML w to wczedł, własny player, tak jak tu na TikTok, to już w ogóle super by było. A nie taki niedorobiony player wideo PiP, gdzie wszystko Firefox musi ręcznie obsługiwać, dublować. A i tak nie działa za dobrze. A to wszystko niby żeby było bezpieczniej chyba.
Kompletnie pusta zmarnowana robota.
Zaloguj się aby komentować
@redve Mamy prawie 2k25, naprawdę przy wyborze frameworka nie kierowałbym się jego wydajnością i lekkością bo pomiędzy topką frameworków na współczesnym sprzęcie nie zauważysz większej różnicy. Przepisywałem rok temu projekt z vanilla na Reacta i chodzi identycznie, zużywa może 15mb ramu więcej.
Tak więc polecam Reacta po prostu bo zwyczajnie jest najpopularniejszy, masz do niego najwięcej bibliotek komponentów. custom hooków i tutoriali. Jeżeli chcesz lżejszą wersje reacta to istnieje Preact ale nigdy się tym nie bawiłem. A jak już ogarniesz Reacta to prosta droga do np Next.js i wtedy dopiero zaczyna się zabawa. Owszem są jeszcze np Vue czy Svelte z takich popularniejszych i przyjemniejszych ale generalnie jak nie znasz żadnego frameworka to nie zrobi ci różnicy którego się będziesz uczyć. Ważne jedynie, abyś się uczył z aktualnych materiałów bo te wszystkie frameworki to co jakiś czas dostają jakieś game breaking zmiany które na nowo definiują jak się w nim pisze (np teraz Svelte i jego runy xd).
@Catharsis - ja bym tę listę odwrócił i zaczął od Svelta - teraz z wersją 5 będzie raczej tylko ewolucja - poza tym ze Sveltem migracja do wyższej wersji była w 99% wykonywana automatycznie przez skrypt, który radził sobie nawet z edge cases.
React to kobyła - do tego jak dla mnie nieintuicyjna - nad zrobieniem czegoś średnio prostego musiałem spędzić najwięcej czasu ze wszystkich frameworków - dla początkujących zwłaszcza nie polecam.
@koszotorobur Owszem sam start w Reatcie jest dość ciężki, ale jak się już ogarnie podstawy to kod się potem sam pisze. A tak jak mówię, nie widzę różnicy w działaniu małych projektów w Reactcie czy Vanilla a dużego projektu nikt nie będzie pisać Vanilla więc rozmiar frameworka nie ma znaczenia.
No i jest więcej ofert pracy w Reactcie :D. Ale on w sumie potrzebuje tylko do strony wizytówki, to w sumie moja strona wizytówka jest napisana w czystym HTML + CSS +JS bez użycia żadnych dodatkowych bibliotek, jedynie używam Vite do live preview podczas pisania oraz minifikowania kodu podczas budowania i eksportu xd.
A nie możesz w HTML 3 jak w gimnazjum?
Zaloguj się aby komentować
Zaloguj się aby komentować
@Hajt Ładne
Zaloguj się aby komentować
Zaloguj się aby komentować
zmiany w preferencji IP Box – wprowadzenie wymogu zatrudnienia,
Koniec IP Box dla programistów,
@kaszalot nie, koniec IP Box na B2B
Teraz każdy na IP BOX się wzajemnie pozatrudnia na 1/16 etatu i warunek spełniony XD
Powrót na UoP to była jedna z lepszych decyzji przy zmianie pracy. Żadnego pierdolenia się ze zmianami w podatkach, uszczelnianiem, rozliczaniem, jakimiś kontami bankowymi, żadnych umów gentlemańskich o "liczbę dni płatnych kiedy zleceniobiorca powstrzymuje się od wykonywania pracy". A idź pan w pizdu.
@Maciek no wszystko fajnie, tylko na UOP w podatkach, składkach, daninach ile z tego co za twoje stanowisko płaci pracodawca dostajesz ty, 50%? Jeszcze jakbyś z tego tytułu miał jakieś usługi na poziomie, to dostajesz niewydolną służbę zdrowia gdzie i tak musisz zapłacić prywatnie, emeryturę w ZUS, gdzie twój kapitał zamiast być inwestowany, jest na bieżąco przejadany, a ty na emeryturze otrzymasz jakiś ochłap. Nie ma co się dziwić ludziom że uciekają z UOP na B2B, rozwiązaniem jest zmniejszenie obciążenia UOP, wtedy nikomu nie będzie się opłacało kombinować z żadnym B2B
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Zapytaj się chata gpt
@Taxidriver Nie pomaga.
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować
Myślałem że może się ktoś wysilił z wykrywaniem ciemnego tła chociaż i jasnych napisów, taki wykrywający co się da...
Potem przyszło mi do głowy, że powinna istnieć baza stron, która ma tryb ciemny, i takim sposobem to obejść...
Ale sam ją sobie właśnie robię w Firelux, mozolnie klikając.
Zaloguj się aby komentować
Zaloguj się aby komentować
Zaloguj się aby komentować