W innych językach, na przykład w PHP, tekst skleja się znakiem ., a liczby dodaje znakiem + - dwa różne znaki. W JavaScript nie ma osobnego znaku do sklejania: + robi obie rzeczy naraz. Gdy choć jedna wartość jest tekstem, + skleja zamiast dodawać.
Przykład z MDN: let myNumber = "74"; myNumber += 3; daje tekst "743", nie liczbę 77 - bo myNumber jest zapisane jako tekst, więc += skleja.
MDN: Math (sekcja „Converting to number data types”)
Część 3 · Operatory przypisania
Skrót: x += 10
Zapis
Działanie
Przykład
Skrót od
+=
dodaj i zapisz z powrotem
x += 4;
x = x + 4;
-=
odejmij i zapisz z powrotem
x -= 3;
x = x - 3;
*=
pomnóż i zapisz z powrotem
x *= 3;
x = x * 3;
/=
podziel i zapisz z powrotem
x /= 5;
x = x / 5;
MDN: Math (sekcja „Assignment operators”)
Część 4 · Inkrementacja i dekrementacja
num1++ czy ++num1?
++ zwiększa zmienną o 1, -- zmniejsza o 1 - to skrót od += 1 i -= 1. Kolejność znaku ma znaczenie: przy num1++ (post-inkrementacja) JavaScript najpierw odczytuje starą wartość, potem zwiększa; przy ++num1 (pre-inkrementacja) najpierw zwiększa, potem zwraca nową.
Ciekawostka z Wikipedii: nazwa języka C++ pochodzi od operatora ++, który właśnie poznajecie. C++ powstał jako rozszerzenie starszego języka C, a znak + w programowaniu od dawna oznaczał „ulepszoną wersję” - stąd C plus ++ zamiast zwykłego C.
MDN: Math (sekcja „Increment and decrement operators”); przykład zmiennej num1 z tej samej sekcji · ciekawostka: en.wikipedia.org/wiki/C%2B%2B (sekcja „History” → „Etymology”)
Egzamin EE.09 / E.14
Tak pytają na egzaminie
1.x = 0; x += 10; Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?
x = 0; x++; x = x + 9;
x = 0; x--; x *= 9;
x = 10; x = x + 10;
x = 10; x = 0;
2. Po wykonaniu skryptu napisanego w języku JavaScript zostanie wypisana wartość
var a = 5;
var b = a--;
a *= 3;
document.write(a + "," + b);