zagadka z JS, chce z litery 'a' zrobic litere 'b' więc:
String.fromCharCode("a".charCodeAt(0)+1)
dlaczego to samo, tylko:
String.fromCharCode("a".charCodeAt(0)++)
Nie działa?
@akerro: a operator ++ nie jest przypadkiem od zwiekszenia wartosci stojacej za zmienna bez zwracania tej zmiennej? Ewentualnie moglo byc "zwroc aktualna wartosc i zwieksz wartosc zmiennej"
@occulkot: String.fromCharCode("a".charCodeAt(0)++)
wywala błąd, nie złą wartość anyway, jakby to przypisać do zmiennej to nadal nie działa.
@akerro: Sprawdzilem w konsoli - "ReferenceError" - czyli musialbys prascowac na referencji a tymczasem probujesz to wywolac na funkcji.
13:33:28.996 "a".charCodeAt(0)++ // wywala blad przez probe odwolania sie przez referencji do metody
13:33:28.999 ReferenceError: invalid assignment left-hand side
13:33:33.150 b = "a".charCodeAt(0) // przypisanie wyniku funkcji do zmiennej
13:33:33.155 97
13:33:34.891 b++ // zwieksz wartosc na referencji a zwroc wartosc biezaca
13:33:34.905 97
13:33:37.755 b // wartosc referencji jest zwiekszona
13:33:37.766 98
@akerro: nie ten operator. Zeby miec jednolinikowca musisz uzywac pierwszej metody, chyba ze sobie lambe zrobisz typu
String.fromCharCore(function(x){ b = x.charCodeAt(0); b++; return b; }("a"));
Sztuka dla sztuki ;)
@occulkot: ale kod ;D przypomnę go sobie jak bede chcial sie wziąć za JS na powaznie ;D
a ten oszukany kod nadal nie dziala ;p
@akerro: w moim jest literowka "fromCharCore" (*core :DD) powinno byuc fromCharCode.
Roznica jest w operatorach "++" zaklada zwiekszenie wartosci na referencji i zwrocenie wartosci
x++ przed zmiana wartosci (zwroc i zwieksz)
++x po zmianie wartosci (zwieksz i zwroc)