JAVASCRIPT Operacje na liczbach
Przedstawię kilka przykładów wykorzystania zmiennych w sktypcie i operacji na nich.
document.write(10); document.write('<br>'); var a = 10; document.write(a); document.write('<br>'); var b = '10'; var c = a+b; document.write(c); document.write('<br>'); var c = a+parseInt(b); document.write(c); document.write('<br>');
W pierwszej linijce wypisujemy liczbę 10. Kolejna to wypisanie htmlowego znacznika przejścia do nowej linii.
Linijka trzecia to deklaracja zmiennej o nazwie a i przypisanie jej wartości 10.
6 linia wydaje się podobna, jednak znaczniki ” sprawiają, że nie mamy w tym momencie do czynienia z liczbową wartością zmiennej b, ale z wartością tekstową.
Próbując dodać do siebie wartości a oraz b w kolejnej linii nie dostaniemy oczekiwanego wyniku 20, ale 1010, gdyż + połączył nam liczbę 10 z ciągiem znaków o tej samej wartości (uwaga trudne słogo: konkatenacja – łączenie ze sobą wyrażeń).
W linii 10 wykorzystujemy funkcję parseInt języka javascript, która zamienia nam ciąg znaków w liczbę całkowitą (int – integer – liczba całkowita).
Rezultat działania skryptu:
10 10 1010 20
var b1 = "1"; var b2 = "1.5"; var b3 = "2"; b1 = parseInt(b1); b2 = parseFloat(b2); b3 = b3 * 1; var suma = b1 + b2 + b3; document.write(suma)
Deklaracja trzech zmiennych z przypisaniem im wartości tekstowych. Funkcję parseInt już znamy. parseFloat zamienia nam wartość tekstową w liczbę zmiennoprzecinkową (float). Również pomnożenie (*) wartości przez 1 sprawiło, że mamy do czynienia z liczbą. Suma trzech wartości początkowo tekstowych daje nam zmiennoprzecinkowy wynik:
4.5
var a = 4; var b = 3; document.write(a+b); document.write('<br>'); document.write(a-b); document.write('<br>'); document.write(a*b); document.write('<br>'); document.write(a/b); document.write('<br>'); document.write(a%b); document.write('<br>');
Kolejne operacje sumy, różnicy, iloczynu i ilorazu na zmiennych całkowitoliczbowych a i b. Ostatnie z przeprowadzonych działań to reszta z dzielenia (%, modulo). Reszta z dzielenia całkowitego 4/3 wynosi 1.
7 1 12 1.3333333333333333 1
var a = 4; document.write(a++); document.write('<br>'); document.write(++a); document.write('<br>'); document.write(a); document.write('<br>');
Kolejny przykład jest zastosowaniem inkrementacji (++) – zwiększania wartości o 1. Pierwszy zapis (a++) powoduje wypisanie pierwotnej wartości a, a następnie zwiększenie jej o 1 (wypisane 4, zwiększenie do 5). Następnie ++a wykonuje te czynności w kolejności odwrotnej (najpierw zwiększenie wartości a do 6, następnie wypisanie jej na ekran).
4 6 6
var a = 4; var b = 3; document.write(a/b); document.write('<br>'); document.write(Math.floor(a/b)); document.write('<br>'); document.write(Math.round(a/b)); document.write('<br>'); document.write(Math.ceil(a/b)); document.write('<br><br>'); document.write(~~(a/b));
Pierwsza linijka to stadardowe dzielenie wartości a przez b. W trzeciej mamy podłogę (floor) z dzielenia, czyli zaokrąglenie wyniku do najbliższej całkowitej wartości w dół. Kolejne zaokrąglenie jest do bliższej wartości całkowitej – w dół lub w górę. Ceil zaokrągla nam do najbliższej całkowitej wartości w górę. W ramach ciekawostki macie również dwukrotne użycie tyldy w celu zaokrąglenia liczby. ~ jest operatorem bitowym i zwraca nam dla liczby n wartość -(n+1).
1.3333333333333333 1 1 2 1
var a = 4; var b = 3; document.write(Math.pow(a,b)); document.write('<br>'); document.write(Math.sqrt(a));
Podniesienie a do potęgi b (pow(a,b), 43) oraz pierwiastek kwadratowy z a.
64 2
var a = Math.random(); document.write(a); document.write('<br>'); a *= 100; document.write(Math.round(a));
Funkcja random() daje nam pseudolosową liczbę z przedziału od 0 do 1. Dwie ostatnie linie mnożą otrzymaną wartość losową razy 100 i zaokrąglają wynik, dając nam tym samym losową liczbę całkowitą z przedziału od 0 do 100.
var a = 1; var b = '1'; var c = 2.3; var d = false; document.write(typeof(a)+"<br>"); document.write(typeof(b)+"<br>"); document.write(typeof(c)+"<br>"); document.write(typeof(d));
Funkcja typeof zwraca nam typ przekazywanej jej jako parametr wejściowy zmiennej. Kolejno: liczba, ciąg znaków, liczba, zmienna logiczna (true/false, prawda/fałsz).
number string number boolean
var a = true; var b = false; var c; document.write(a+'<br>'); c = a && b; document.write(c+'<br>'); c = a || b; document.write(c);
Operacje na wartościach logicznych. && to i / and, || to lub / or. Rezultatem działania && jeśli będzie true tylko jeżeli obie strony będą prawdziwe. Lub da wartość prawdziwą jeśli którakoliwiek strona będzie prawdziwa…
true false true
var a = 2; var b = -4; var c; c = ((a>0) && (b<0)) || (a>b); document.write(c+'<br>'); document.write(!c);
Przykład wykorzystania operatorów logicznych. Ostatnia linia zawiera negację (!) – wynik przeciwny.
true false
var a = -3; a = Math.abs(a); document.write(a+'<br>'); document.write((a>0)?2:7);
Kolejne dwa przykłady. Pierwszy przedstawia funkcję obliczającą wartość absolutną z liczby, drugi sprawdza warunek, następnie zwraca wartość pierwszą jeśli warunek był prawdziwy lub w przeciwnym przypadku drugą (warunek?wartość1:wartość2).
3 2