@vsemaphore: Nigdy nie lubilem JS ale teraz jeszcze bardziej nie lubie ;P W ogole do kitu sa jezyki programowania bez silnego typowania bo szlag mnie trafia jak musze cos bez IntelliSense'a napisac.
kurcze, ja tego nie rozumiem. w kodzie, podobnie jak i w jezyku naturalnym pisze sie tak zeby bylo mozliwie czytelnie, i przejrzyscie. Uzytecznosc takich sztuczek jest dosc ograniczona(nie pisze w JS, ale widze potencjal na uproszczenie skladni).
niech autor musi wrocic do tak napisanego fragmentu po pol roku. konia z rzedem jesli bedzie to dla niego czytelne
@eXcore: Ja dokładnie wiem jaka jest różnica między Javą a JavaScriptem. Ale Google napisało sobie coś takiego jak Google Web Toolkit. Tam, o ile z pobieżnego czytania dobrze wywnioskowałem ludzie piszą aplikacje w javie - mają chyba nawet zestawy gotowych kontrolek i inne atrakcje, a przypomina to chyba pisanie aplikacji pod .net. Potem te aplikacje w javie są przekształcane na kod wynikowy w JS i html.
@fnord23: zagadka na poziomie C-owego przedszkola: bo odwołujesz się do 4 elementu z tablicy "zero" którym jest znak kończący ciąg znaków czyli zero właśnie.
Komentarze (79)
najlepsze
Masz ++, czyli inkrementację, a później dodanie liczby do stringa, co daje w efekcie string "10".
niech autor musi wrocic do tak napisanego fragmentu po pol roku. konia z rzedem jesli bedzie to dla niego czytelne
I tu się wywiązała dyskusja
int a = 6;
a = a+++++a;
a = ?
a += 1; // a jest równe '31'
a++; // a jest równe 32
Komentarz usunięty przez moderatora
++[[]][+[]] == 1
łapie że
+[] == 0
, tak samo jak
+'' == 0
czy
+null == 0
mamy teraz coś takiego:
++[[]][0]
czyli jak rozumiem wybieramy pierwszy element z tablicy zawierającej 1 element.
Tym elementem jest pusta tablica...
stąd
++[]
czyli
[] + 1
co daje 1.
... ale skoro tak to dlaczego więc dostaje błąd przy próbie wykonania wprost ++[] a
a tworząc tablicę o jednym elemencie, ten jeden element odkłada się do pamięci
potem odwołanie do zerowego indeksu tej tablicy jest jakby referencją do tej zmiennej - a tą już możemy preinkrementować
innymi słowy - tworzymy w ten sposób zmienną, którą potem preinkrementujemy
zapisując to prosto:
++a;
1
[++[[]][+[]]+(++[[]][+[]])]+(++[[]][+[]]+(++[[]][+[]])+(++[[]][+[]]))
@ZamknijSieZamknijSie: Nie do końca *(a+b).
Na moim przeciętnym desktopie ta pętla wykonująca to obliczenie milion razy?
4455ms na foxie, 1593ms na chromie...