Informacje podstawowe


Wyświetlanie wyników JavaScript

1. Zapisywanie do pliku wyjściowego HTML za pomocą document.write() lub document.writeln()
2. Zapisywanie w polu ostrzeżenia za pomocą window.alert().
3. Zapisywanie w elemencie HTML za pomocą innerHTML.
4. Pisanie w konsoli przeglądarki za pomocą console.log().

Ad. 1 Wygodne do celów testowych. Użycie document.write() po załadowaniu dokumentu HTML spowoduje usunięcie całego istniejącego HTML. writeln() dodatkowo daje znak nowej linii (w HTML będzie to biały znak - spacja).
Ad. 2 Słowo kluczowe "window" można pominąć (jest opcjonalne), gdyż obiekt window jest globalnym obiektem zakresu (​​zmienne, właściwości i metody domyślnie należą więc do obiektu window).
Ad. 3 Zmiana właściwości innerHTML elementu HTML jest powszechnym sposobem wyświetlania danych w formacie HTML.
Ad. 4 W celu debugowania i w celu wyświetlenia danych można wywołać metodę console.log() w przeglądarce. Konsoli szukaj w opcjach przeglądarki, np. w Chrome: Narzędzia dla developerów.

Przykłady:

<script>
  document.write(5+7);
</script>

<script>
  alert(5+7);
</script>

<p id="demo"></p>
<script>
  document.getElementById("demo").innerHTML = 5 + 7;
</script>

<script>
  console.log(5+7);
</script>


Instrukcje i składnia JavaScript

Instrukcje:

Program komputerowy (kod) to lista instrukcji programowych do „wykonania” przez komputer.
W HTML programy JavaScript są uruchamiane przez przeglądarkę internetową.
Instrukcje składają się z: wartości, operatorów, wyrażeń, słów kluczowych i komentarzy.
Instrukcje są wykonywane jedna po drugiej, w kolejności, w jakiej zostały napisane.
Średniki (;) oddzielają instrukcje JavaScript. Wprawdzie w końcowych instrukcjach nie są wymagane ale by uniknąć pomyłek (jeśli np. umieścisz kilka instrukcji w jednej linii to MUSISZ je stawiać) - wysoce zalecane
JavaScript ignoruje wiele spacji - możesz je więc dodawać dla czytelności kodu.
Jeśli instrukcja JavaScript jest długa, najlepszym miejscem na jej złamanie jest operator (np. =).
Instrukcje JavaScript zawierają słowa kluczowe, które są zastrzeżone (nie możesz ich używać jako nazw swoich zmiennych). Np.: for, return, continue, while, var,... itd.
Bloki kodu instrukcji grupujemy używając nawiasów klamrowych { }. Ich celem jest zdefiniowanie instrukcji do wykonania razem.

Komentarz jednoliniowy w JS poprzedzamy //, wieloniniowy umieszczamy między /* ... a ... */

Składnia

Składnia JavaScript definiuje dwa typy wartości: wartości stałe (literały) i wartości zmiennych (zmienne).

Literały:
liczby (z lub bez kropki dziesiętnej): 10   lub   10.01
ciągi znaków (w cudzysłowach): "Ala i Jola" lub 'Ala i Jola' lub "3.14"
Zmienne:

Zmienne JavaScript to kontenery do przechowywania wartości danych.
Do deklarowania zmiennych (tworzenia ich) używane jest słowo kluczowe (var, let, const)
Do przypisywania wartości zmiennym służy znak równości = (operator przypisania).
Uwaga: samą równość w JS reprezentuje podwójny znak ==
var x;
x = 6;

Można też zadeklarować i od razu zmiennej przypisać wartość:
var x = 6;
var y = 5 + 2 + 3;

Zmienna zadeklarowana bez wartości będzie miała wartość undefined
Ponowna deklaracja tej samej zmiennej nic nie zmienia - zmienna nie traci wartości
Jeśli deklarujemy wiele zmiennych w jednej instrukcji to do ich oddzielenia używamy przecinka
var x, y, z=5;
Wartości, wyrażenia

Do obliczania wartości JS używa operatorów arytmetycznych + - * /
(2 + 3) * 7

Wyrażenie jest kombinacją wartości, zmiennych i operatorów, które są przeliczane na wartość.
3+2, x * 5, "Ala" + " i Jola"

Identyfikatory (nazwy)
Używane są do nazywania zmiennych (także słów kluczowych, funkcji i etykiet).
W JS pierwszym znakiem musi być litera, znak podkreślenia _ lub znak dolara $. Kolejnymi znakami mogą być już także cyfry.
Rozróżniana jest wielkość liter (duże, małe).
Typowym łaczeniem kilku wyrazów w jedną nazwę (skoro łącznik - nie jest w nich dozwolony) jest sposób typu "dolny wielbłąd": toJestZmienna, sredniaWazona
JavaScript używa zestawu znaków Unicode


Operatory

Arytmetyczne:

+ dodawanie (także konkatenacja czyli łączenie tekstów)
- odejmowanie
* mnożenie
** potęgowanie
/ dzielenie
% modulo (reszta z dzielenia)
++ przyrost
-- zmniejszenie

Jeśli dodasz liczbę i ciąg znaków, wynikiem będzie ciąg tekstowy!

Przypisania (przypisują wartości do zmiennych):

=
+= (także do tekstu)
-=, *=, /=, %=, **=
np. x/=5 oznacza x=x/5
np. x-=y oznacza x=x-y

Porównania

== równe
=== równe wartością i typem
!= nie równe
!== nie równe wartością lub nie równe typem
> większe
>= większe lub równe
< mniejsze
<= mniejsze lub równe
? operator trójskładnikowy

Logiczne

&& logiczne "i"
II logiczne "lub"
! logiczne "nie"

Typu:

typeof
instanceof

Bitowe:

Działają na liczbach 32-bitowych. Dowolny operand liczbowy w operacji jest konwertowany na liczbę 32-bitową. Wynik jest konwertowany z powrotem na numer JavaScript.
& (AND)
| (OR)
~ (NOT)
^ (XOR)
<< (przesuń w lewo)
>> (przesuń w prawo)
>>> (przesuń w prawo, bez znaku)
Opis i przykłady znajdziesz np. na https://www.w3schools.com/js/js_bitwise.asp
Kolejność operatorów: https://www.w3schools.com/js/js_arithmetic.asp (na dole strony)

Typy danych

Podstawowe typy: liczby, ciągi znaków (łańcuchy), logiczne, tablice, obiekty.
Za pomocą operatora typeof można znaleźć typ zmiennej JavaScript.
typeof 5; //zwróci number
typeof "Ala"; //zwróci string

JavaScript oblicza wyrażenia od lewej do prawej. Przy łączeniu tekstu i liczb różne sekwencje dają różne wyniki
var x = 1 + 2 + "maj"; da wynik: 3maj
var x = "maj" + 1 + 2; da wynik: maj12

Typy JavaScript są dynamiczne. Oznacza to, że ta sama zmienna może być używana do przechowywania różnych typów danych.

var x; //zadeklarowany, niezdefiniowany (undefined)
x = 5; // teraz jest liczbą (Number)
x = "piec"; //a tutaj już jest ciągiem tekstowym (String)

Łańcuchy (ciągi znaków) - Strings

Liczby (Numbers)

Bardzo duże lub bardzo małe liczby można zapisać za pomocą notacji naukowej (wykładniczej)
var y = 123e6;      // 123000000
var z = 123e-6;     // 0.000123

Wartości logiczne (Booleans)

Często używane w testach warunkowych. Mogą mieć tylko dwie wartości: true (prawda) lub false (fałsz).
var x = 1;
var y = 2;
(x ==y) 
//sprawdzenie czy x jest równe y, zwróci wartość false (fałsz)

Tablice (Arrays)

Tablice JavaScript są zapisywane w nawiasach kwadratowych. Elementy tablicy są oddzielone przecinkami. Pierwszy element to [0]
var koty = ["tygrys", "jaguar", "kot"];

Obiekty (Objects)

Obiekty JavaScript są pisane za pomocą nawiasów klamrowych {}. Właściwości obiektu są zapisywane jako pary nazwa: wartość i oddzielone są przecinkami.
var osoba = {imie: "Piotr", nazwisko: "Zalewski", wiek: 44, kolorOczu: "niebieski"};

Undefined

Zmienna bez wartości ma wartość undefined. Typ jest również undefined.
można tak wyczyścić zmienną i jej typ:
x= undefined;

Null

Pusty typ ale to obiekt.
zmienna = null;
typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true

Dane pierwotne (Primitive Data)

Pierwotna wartość danych to pojedyncza prosta wartość danych bez żadnych dodatkowych właściwości i metod (string, number, boolean, undefined).

typeof "Ala"              // string
typeof 1.5                // number
typeof true                // boolean

Dane złożone (Complex Data)

function (function)
object (obiekt, tablica, null)

Następny rozdział: Funkcje lub menu jest po prawej stronie -->