Przejdź do treści
Logowanie / Zarejestruj się
Złóż wniosek teraz
Zdaj-informatyka.pl
  • Kursy zawodowe
    • Kurs zawodowy z kwalifikacji INF.02
    • Kurs zawodowy z kwalifikacji INF.03
  • Konto użytkownika
  • Regulamin serwisu
  • Polityka prywatności
Zdaj-informatyka.pl
  • Kursy zawodowe
    • Kurs zawodowy z kwalifikacji INF.02
    • Kurs zawodowy z kwalifikacji INF.03
  • Konto użytkownika
  • Regulamin serwisu
  • Polityka prywatności

Kurs zawodowy z kwalifikacji INF.03

Program kursu

  • 7 Rodziałów
  • 70 Lekcji
  • 100 Dni
Pokaż rozdziałyZwiń rozdziały
  • HTML
    Język opisowy, w którym przy pomocy znaczników (tagów) określamy co zawiera strona - tekst, hiperłącza, obrazki, pola edycyjne, przyciski, tabele, listy numerowane, pojemniki na zawartość, nagłówki itd. Oprócz zawartości strony, w HTML określamy także istotne parametry witryny – tytuł i opis w rezultatach wyszukiwania Google, język i zestaw znaków właściwy dla danego kraju. Podpinamy także skrypty i arkusze stylów.
    10
    • 1.1
      Fundamentalne znaczniki w dokumencie HTML
    • 1.2
      Poprawne wypisywanie tekstów
    • 1.3
      Obrazy w HTML
    • 1.4
      Co trzeba wiedzieć o hiperłączach?
    • 1.5
      Nagłówki h1 do h6
    • 1.6
      Tworzenie tabel
    • 1.7
      Listy punktowane i numerowane oraz lista definicji
    • 1.8
      Struktura witryny – dostępne rodzaje bloków, semantyka
    • 1.9
      Układanie bloków – float:left, display:inline-block, display:flex
    • 1.10
      Formularz oraz kontrolki formularza
  • CSS
    Kaskadowe arkusze stylów (ang. Cascading Style Sheets). Style na stronie internetowej służą do opisania wyglądu elementów witryny, zdefiniowanych uprzednio w HTML (np. jakie mają kolory, rozmiary, marginesy, a nawet jak są względem siebie rozmieszczone). Kaskada to rodzaj wodospadu mającego budowę schodkową - jest to wyraźna aluzja do hierarchicznego mechanizmu dziedziczenia właściwości w CSS, który trzeba dobrze zrozumieć. Które mechaniki i właściwości CSS warto znać, aby poradzić sobie na egzaminie zawodowym?
    14
    • 2.1
      Selektory, atrybuty, wartości oraz identyfikatory kontra klasy
    • 2.2
      Jak podpiąć CSS do HTML? Na czym polega kaskadowość stylów
    • 2.3
      Zapisy kolorów w CSS
    • 2.4
      Formatowanie tekstów i czcionek
    • 2.5
      Wyśrodkowanie elementu
    • 2.6
      Margin i padding, modeł pudełkowy
    • 2.7
      Stylizowanie linków
    • 2.8
      Obramowanie (border)
    • 2.9
      Określanie wyglądu tabel
    • 2.10
      Stylizowanie list punktowanych i numerowanych
    • 2.11
      Stylizowanie kontrolek formularzy
    • 2.12
      Pozycja elementu: static, absolute, relative, fixed
    • 2.13
      Jednostki możliwe do użycia w CSS
    • 2.14
      Cheat sheet – lista właściwości CSS
  • JavaScript
    Pełnoprawny, skryptowy język programowania, w którym możemy zastosować pełny repertuar klasycznych konstrukcji językowych (instrukcje warunkowe, pętle, zmienne, tablice, instrukcje wyboru, własne funkcje, klasy itd.). W kontekście egzaminu zawodowego JS używamy najczęściej do obługi zdarzeń, przetwarzania liczb bądź napisów albo do zmiany stylów elementów witryny.
    14
    • 3.1
      Jak podpiąć skrypt JS do pliku HTML?
    • 3.2
      Tworzenie własnych funkcji, zdarzenia
    • 3.3
      Rodzaje uchwytów elementów DOM
    • 3.4
      Wypisywanie: innerHTML, innerText, outerHTML, outerText
    • 3.5
      Atrybut onclick vs. addEventListener
    • 3.6
      Instrukcje warunkowe w JS
    • 3.7
      Pętle w JS
    • 3.8
      Tablice (kolekcje) w JS
    • 3.9
      Skrypty dokonujące obliczeń, parsowanie liczb
    • 3.10
      Skrypty przetwarzające napisy
    • 3.11
      Zmiana stylów elementów strony w skryptach
    • 3.12
      Obiekty i funkcje wbudowane JS, które warto znać
    • 3.13
      Obsługa ciasteczek w JS
    • 3.14
      Skuteczne wyszukiwanie błędów, devtools
  • SQL
    Bazy danych stanowią ważny element wielu witryn internetowych, przechowując niezbędne do jej działania dane (np. konta użytkowników, w tym loginy i hasła albo listy produktów i zamówień w sklepie internetowym). MySQL to tzw. system zarządzania bazą danych DBMS (ang. Database Management System). Natomiast SQL (ang. Structured Query Language) to język, który służy do pisania zapytań do tej bazy (zapytania najczęściej umieszczamy wewnątrz skryptów PHP).
    10
    • 4.1
      Pliki SQL z bazami danych do pracy w tym kursie
    • 4.2
      Najważniejsze pojęcia bazodanowe
    • 4.3
      Zapytania wyszukujące SELECT
    • 4.4
      Wstawianie rekordów – INSERT
    • 4.5
      Aktualizowanie danych – UPDATE
    • 4.6
      Usuwanie informacji – DELETE, DROP, TRUNCATE
    • 4.7
      Struktura bazy danych – CREATE, ALTER
    • 4.8
      Uprawnienia – GRANT, REVOKE
    • 4.9
      Złączenia w bazie danych – JOIN
    • 4.10
      Grupowanie danych – GROUP BY
  • PHP
    Języki back-endowe, takie jak PHP, zajmują się mechaniką działania serwisów internetowych. PHP obsłuży na serwerze np. zachowanie algorytmu logowania, koszyk w sklepie internetowym, rejestrację użytkownika w grze przeglądarkowej. W kontekście egzaminu zawodowego najczęściej użyjemy go do współpracy z bazą danych i do przetwarzania formularzy.
    15
    • 5.1
      Podstawowy skrypt – zmienne, operatory, wypisywanie
    • 5.2
      Instrukcje warunkowe w PHP
    • 5.3
      Pętle w PHP
    • 5.4
      Tablice w PHP
    • 5.5
      Obsługa formularzy – metody POST i GET
    • 5.6
      Nawiązanie i zamykanie połączenia PHP z bazą danych
    • 5.7
      Obsługa MySQL w PHP – biblioteka mysqli i PDO
    • 5.8
      Fetchowanie danych z użyciem mysqli
    • 5.9
      Formatowanie kodu HTML wypisanego przez PHP
    • 5.10
      Funkcje wbudowane oraz zapis do pliku w PHP
    • 5.11
      Odczytywanie wartości z kontrolek formularzy
    • 5.12
      Data i czas w PHP
    • 5.13
      Ciasteczka w PHP
    • 5.14
      Mechanizm sesji
    • 5.15
      Fetchowanie danych z bazy w PDO
  • Multimedia
    5
    • 6.1
      Rodzaje grafiki komputerowej
    • 6.2
      Multimedia – audio i video
    • 6.3
      Formaty plików graficznych – JPG, PNG, GIF, WEBP, SVG, AVIF
    • 6.4
      Animacje na potrzeby stron internetowych
    • 6.5
      Najważniejsze działania na obrazach w programie graficznym
  • Na zakończenie
    2
    • 7.1
      Systemy zarządzania treścią (CMS)
    • 7.2
      Skuteczne przygotowania do egzaminu

Wypisywanie: innerHTML, innerText, outerHTML, outerText

W JavaScript istnieje kilka sposobów na wypisywanie tekstów (np. wyników obliczeń lub tekstowych podsumowań działania logiki skryptu). Czasem też chcemy obudować takie wypisywane rezultaty otrzymane w JS kodem HTML (np. umieścić w akapicie, w liście wypunktowanej albo w tabeli). Poznamy więc teraz cztery popularne właściwości:

innerText
innerText,
textContent
textContent,
innerHTML
innerHTML oraz
outerHTML
outerHTML. Są to oczywiście właściwości elementów blokowych, w których zazwyczaj umieszczamy wyniki działania skryptu – na przykład w przygotowanym uprzednio, a domyślnie pustym kontenerze typu:
<div class="wyniki"></div>
<div class="wyniki"></div> czy
<p class="wyniki"></p>
<p class="wyniki"></p>.

Wydawać się to może trywialne, bo w 90% przypadków ludzie na egzaminie korzystają z

innerHTML
innerHTML, lecz czy na pewno dobrze znamy wszystkie cztery właściwości i różnice pomiędzy nimi? A co, jeśli arkusz wymusi na nas użycie innej właściwości? Poznajmy zatem każdą z nich!

Dostęp do tekstu wewnątrz – innerText

Po pierwsze – gwoli formalności przypomnijmy, iż z użyciem JS możemy swobodnie manipulować (zarówno zmienić, jak i odczytać) pierwotnie istniejącą, zdefiniowaną w dokumencie HTML zawartością znaczników – może to być akapit, div, nagłówek itd.

Załóżmy więc, że istnieje na stronie np. nagłówek

<h2>
<h2>:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
<h2 class="tytul">Wylosuję dla Ciebie liczbę z przedziału od 1 do 100!</h2>
<button onclick="losujLiczbe()">Wylosuj dla mnie liczbę</button>
<h2 class="tytul">Wylosuję dla Ciebie liczbę z przedziału od 1 do 100!</h2> <button onclick="losujLiczbe()">Wylosuj dla mnie liczbę</button>
<h2 class="tytul">Wylosuję dla Ciebie liczbę z przedziału od 1 do 100!</h2>
<button onclick="losujLiczbe()">Wylosuj dla mnie liczbę</button>

I w zadaniu egzaminacyjnym wymaga się od nas, żeby po kliknięciu przycisku ten nagłówek zmienił treść (zgodnie z obietnicą zawartą w jego treści) na faktyczną liczbę wylosowaną z zadanego przedziału 1..100. Aby to zrobić najprościej, możemy w JS użyć właściwości

innerText
innerText (ang. inner = wewnętrzny, w środku):

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
function losujLiczbe() {
// Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
var naglowek = document.querySelector(".tytul");
// Losujemy liczbę z przedziału 1–100 (obiekt Math)
var losowa = Math.floor(Math.random() * 100) + 1;
// Podmieniamy tekst nagłówka na wylosowaną liczbę
naglowek.innerText = "Twoja liczba to: " + losowa + ". Jeszcze raz?";
}
function losujLiczbe() { // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka) var naglowek = document.querySelector(".tytul"); // Losujemy liczbę z przedziału 1–100 (obiekt Math) var losowa = Math.floor(Math.random() * 100) + 1; // Podmieniamy tekst nagłówka na wylosowaną liczbę naglowek.innerText = "Twoja liczba to: " + losowa + ". Jeszcze raz?"; }
function losujLiczbe() {
  // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
  var naglowek = document.querySelector(".tytul");

  // Losujemy liczbę z przedziału 1–100 (obiekt Math)
  var losowa = Math.floor(Math.random() * 100) + 1;

  // Podmieniamy tekst nagłówka na wylosowaną liczbę
  naglowek.innerText = "Twoja liczba to: " + losowa + ". Jeszcze raz?";
}

Jednak najważniejszym ograniczeniem właściwości

innerText
innerText jest fakt, iż nie pozwala na interpretację HTML, to znaczy nie możemy obudować wypisywanej treści znacznikami HTML. Rozważmy dodanie do wypisanej liczby jej podkreślenia:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
function losujLiczbe() {
// Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
var naglowek = document.querySelector(".tytul");
// Losujemy liczbę z przedziału 1–100 (obiekt Math)
var losowa = Math.floor(Math.random() * 100) + 1;
// Podmieniamy tekst nagłówka na wylosowaną liczbę
naglowek.innerText = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?";
}
function losujLiczbe() { // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka) var naglowek = document.querySelector(".tytul"); // Losujemy liczbę z przedziału 1–100 (obiekt Math) var losowa = Math.floor(Math.random() * 100) + 1; // Podmieniamy tekst nagłówka na wylosowaną liczbę naglowek.innerText = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?"; }
function losujLiczbe() {
  // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
  var naglowek = document.querySelector(".tytul");

  // Losujemy liczbę z przedziału 1–100 (obiekt Math)
  var losowa = Math.floor(Math.random() * 100) + 1;

  // Podmieniamy tekst nagłówka na wylosowaną liczbę
  naglowek.innerText = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?";
}

Rezultat w przeglądarce (oczywiście dla akurat tej wylosowanej liczby) będzie taki:

Twoja liczba to: <u>45</u>. Jeszcze raz?

Jak widzimy przeglądarka nie interpretuje znacznika

<u>
<u> tylko pokazuje go jako tekst. I właśnie dlatego istnieje także właściwość
innerHTML
innerHTML poprawnie obsługująca tagi, którą teraz się zajmijmy.

Tekst, lecz z działającymi tagami – innerHTML

Jeśli zatem chcemy z użyciem JS wygenerować nie tylko tekst, ale także obudować go znacznikami HTML, to zamiast

innerText
innerText użyjemy właściwości
innerHTML
innerHTML. Dla tego samego zadania co powyżej, kod JS będzie następujący:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
function losujLiczbe() {
// Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
var naglowek = document.querySelector(".tytul");
// Losujemy liczbę z przedziału 1–100 (obiekt Math)
var losowa = Math.floor(Math.random() * 100) + 1;
// Podmieniamy tekst nagłówka na wylosowaną liczbę
naglowek.innerHTML = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?";
}
function losujLiczbe() { // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka) var naglowek = document.querySelector(".tytul"); // Losujemy liczbę z przedziału 1–100 (obiekt Math) var losowa = Math.floor(Math.random() * 100) + 1; // Podmieniamy tekst nagłówka na wylosowaną liczbę naglowek.innerHTML = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?"; }
function losujLiczbe() {
  // Pobieramy nagłówek na podstawie klasy CSS (stąd kropka)
  var naglowek = document.querySelector(".tytul");

  // Losujemy liczbę z przedziału 1–100 (obiekt Math)
  var losowa = Math.floor(Math.random() * 100) + 1;

  // Podmieniamy tekst nagłówka na wylosowaną liczbę
  naglowek.innerHTML = "Twoja liczba to: <u>" + losowa + "</u>. Jeszcze raz?";
}

Teraz rezultat w przeglądarce będzie już zgodny z naszą intencją podkreślenia liczby:

Twoja liczba to: 45. Jeszcze raz?

Tym razem tagi HTML są już interpretowane przez przeglądarkę, a nie pokazywane jako tekst. Koniecznie też zwróćmy uwagę na zapis właściwości w JS – jest to

innerHTML
innerHTML, a nie często zapisywany błędnie:
innerHtml
innerHtml – wydawać się to może trywialne, ale to popularna pomyłka!

W tym miejscu wiele osób zapyta o to, po co w ogóle istnieje właściwość

innerText
innerText, skoro
innerHTML
innerHTML również umożliwia wypisywanie tekstów, a dodatkowo pozwala (jeśli chcemy) używać znaczników? Oczywiście w grę wchodzi tutaj przede wszystkim kontekst bezpieczeństwa (możliwość używania tagów niesie ze sobą ryzyko), lecz pełną odpowiedź na to pytanie najlepiej przedstawić w postaci tabelarycznej:

Opis potencjalnego działania innerText innerHTML
Przekazuje tekst do elementu HTML Tak Tak
Pozwala również na tagi HTML w tekście Nie Tak
Usuwanie potencjalnych niebezpiecznych tagów, czyli tzw. sanityzacja kodu) Tak, bo nie obsługujemy tagów, pokazując znaczniki jako zwykły tekst Nie, bo pozwoli “wykonać” wiele znaczników w przeglądarce
Szybkość przetworzenia (bo uwzględniamy styl, widoczność) Nieco wolniejsze Nieco szybsze

Wiele osób najczęściej używa na egzaminie właśnie właściwości

innerHTML
innerHTML do wypisywania tekstów i to nawet jeśli ten tekst nie zawiera znaczników. Raczej nie jest to błąd, a sytuacja typu overkill (ang. przesada), lecz my rozważmy użycie
innerText
innerText wszędzie tam, gdzie znaczniki nie są potrzebne. W końcu nie zawsze potrzebujemy wszechstronności – czasem zależy nam najbardziej na bezpieczeństwie i prostocie zapisu.

Alternatywny dostęp do tekstu – textContent

Właściwość

textContent
textContent jest podobna do
innerText
innerText, natomiast różnica polegała na tym, iż umożliwiała nam ona odczytanie lub ustawienie tekstu w elemencie nie przejmując się widocznością tego kontenera, zdefiniowaną w CSS. Czyli podczas używania
textContent
textContent przeglądarka nie analizowała, czy coś jest aktualnie widoczne na stronie (ustawiona właściwość CSS
display:none
display:none ukrywa przecież obiekt), co jak najbardziej było uwzględniane przy użyciu
innerText
innerText.

A zatem próba odczytania tekstu z ukrytego akapitu poprzez

innerText
innerText zakończyłaby się niepowodzeniem – w poniższym skrypcie otrzymalibyśmy pustą wartość w drugim alercie:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
<style> .napis { display:none; } </style>
<p class="napis">Tajemnicza, ukryta na stronie treść akapitu.</p>
<button onclick="pokazZawartosc()">Odczytaj niewidoczną treść</button>
<script>
function pokazZawartosc()
{
var akapit = document.querySelector(".napis");
alert(akapit.textContent);
alert(akapit.innerText);
}
</script>
<style> .napis { display:none; } </style> <p class="napis">Tajemnicza, ukryta na stronie treść akapitu.</p> <button onclick="pokazZawartosc()">Odczytaj niewidoczną treść</button> <script> function pokazZawartosc() { var akapit = document.querySelector(".napis"); alert(akapit.textContent); alert(akapit.innerText); } </script>
<style> .napis { display:none; } </style>

<p class="napis">Tajemnicza, ukryta na stronie treść akapitu.</p> 
<button onclick="pokazZawartosc()">Odczytaj niewidoczną treść</button>

<script>

function pokazZawartosc() 
{
    var akapit = document.querySelector(".napis"); 
    
    alert(akapit.textContent);
    alert(akapit.innerText);
}

</script>

Dlaczego jednak cały czas mówimy o tym w czasie przeszłym? Ponieważ współczesne przeglądarki (np. Google Chrome, Firefox) zaktualizowały sposób działania

innerText
innerText ujednolicając ich zachowanie – oba alerty zwrócą zawartość akapitu. Ta drobna różnica w działaniu obu sposobów jest więc dziś nieaktualna, lecz oczywiście właściwość
textContent
textContent wciąż pozostaje jak najbardziej działającą alternatywą dla
innerText
innerText i możemy jej bezproblemowo także używać.

Właściwość outerHTML – dostęp także do elementu

Kolejna właściwość, czyli

outerHTML
outerHTML (ang. outer = zewnętrzny) pozwala na dostęp (odczyt, zapis) do całego elementu, a nie tylko jego zawartości! Rozważmy więc w poniższym przykładzie zmianę także samego znacznika, a nie samej jego wewnętrznej zawartości:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
<p id="tekst">To jest paragraf.</p>
<button onclick="zmienOuterHTML()">Zmień także rodzaj znacznika</button>
<p id="tekst">To jest paragraf.</p> <button onclick="zmienOuterHTML()">Zmień także rodzaj znacznika</button>
<p id="tekst">To jest paragraf.</p>
<button onclick="zmienOuterHTML()">Zmień także rodzaj znacznika</button>
Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
function zmienOuterHTML() {
var tekst = document.getElementById("tekst");
tekst.outerHTML = "<h2>Czary mary - teraz to nagłówek!</h2>";
}
function zmienOuterHTML() { var tekst = document.getElementById("tekst"); tekst.outerHTML = "<h2>Czary mary - teraz to nagłówek!</h2>"; }
function zmienOuterHTML() { 
    var tekst = document.getElementById("tekst");
    tekst.outerHTML = "<h2>Czary mary - teraz to nagłówek!</h2>"; 
}

I tak oto akapit

<p>
<p> został podmieniony w przeglądarce w JS na nagłówek
<h2>
<h2>. Zależnie od arkusza z zadaniem, czasami może się to okazać przydatne na egzaminie INF.03 oraz oczywiście także w praktyce tworzenia realnych stron internetowych, zależnie od naszych intencji.

Interpolacje podczas wypisywania

W JavaScript bardzo często chcemy wypisać wartość jakiejś zmiennej razem z tekstem. Na przykład: użytkownik podał imię, a my chcemy napisać:

Witaj, Janek!
Witaj, Janek! albo
Podano liczbę: 42
Podano liczbę: 42. Właśnie w takich sytuacjach do gry wchodzi tzw. interpolacja łańcuchów znaków – czyli sposób łączenia tekstu z wartością zmiennej – najlepiej gdyby był czytelny, nowoczesny i wygodny.

Klasyczny sposób w JS to oczywiście używany także w tej lekcji operator konkatenacji

+
+:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
let imie = "Kasia";
console.log("Witaj, " + imie + "!");
let imie = "Kasia"; console.log("Witaj, " + imie + "!");
let imie = "Kasia";
console.log("Witaj, " + imie + "!");

Zapis działający i w zupełności wystarczający do egzaminu. Natomiast stanie się on mniej nieczytelny, gdy chcemy wstawić do łańcuch kilka zmiennych lub dłuższy tekst. Cudzysłowy, plusy i spacje mieszają się – dla wielu osób łatwo się w tym miejscu pomylić. I dlatego warto poznać nowocześniejszy sposób – interpolację z użyciem zapisu 

${zmienna}
${zmienna}:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
let imie = "Kasia";
console.log(`Witaj, ${imie}!`);
let imie = "Kasia"; console.log(`Witaj, ${imie}!`);
let imie = "Kasia";
console.log(`Witaj, ${imie}!`);

Są to tzw. “szablony tekstowe” (ang. template strings), jak widać zapisane w tzw. backticks (czyli apostrofach typu

`
`, które wstawiamy na klawiaturze za pomocą klawisza tyldy – pod Escape). Dzięki takiemu zapisowi zdania wyglądają podobnie jak w języku naturalnym – nie ma tylu spójników – jest to bardzo intuicyjne i czytelne.

Gdy chcemy wstawić kilka wartości – np. imię, nazwisko i wiek – to taki zapis z interpolacją stanie się już nie tylko czytelniejszy, ale także krótszy:

Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
let imie = "Kasia";
let nazwisko = "Nowak";
let wiek = 18;
// template strings
console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`);
// klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę!
console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");
let imie = "Kasia"; let nazwisko = "Nowak"; let wiek = 18; // template strings console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`); // klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę! console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");
let imie = "Kasia";
let nazwisko = "Nowak";
let wiek = 18;

// template strings
console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`);

// klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę!
console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");

Porównanie czytelności i długości widać gołym okiem. Gdzie możemy używać zapisu ${zmienna} w template strings? W codziennych egzaminacyjnych sytuacjach – na przykład:

  • console.log(...)
    console.log(...) – informacja w logach konsoli w Devtools
  • alert(...)
    alert(...) – tekst w wyskakującym oknie typu alert
  • innerHTML = ...
    innerHTML = ... – wyświetlanie tekstu w div czy akapicie na stronie
  • przekazywanie wartości np. adresów URL do zmiennych

Czego potrzebujemy, żeby to nowoczesne wypisywanie działało? Musimy pamiętać o dwóch rzeczach:

  • Zamiast zwykłych cudzysłowów
    "..."
    "..." lub apostrofów prostych
    '...'
    '...' używamy backticków – czyli:
    `...`
    `...`.
  • W środku zapisujemy zmienną w formacie:  
    ${nazwaZmiennej}
    ${nazwaZmiennej}

Podsumowanie

Na koniec jeszcze jedna uwaga, konieczna w tym miejscu – zwróćmy uwagę, iż akapity, nagłówki czy divy i pojemniki semantyczne (article, section, header, footer, aside) faktycznie posiadają w JS cztery omówione przez nas w tej lekcji właściwości, natomiast co innego pola formularzy (inputy, textarea, przyciski) – aby dostać się do zawartości wewnątrz nich wykorzystujemy właściwość

value
value, czyli wartość w środku pola. Pomieszanie tych właściwości to stosunkowo częsta pomyłka.

Co na pewno warto zapamiętać?

  • innerText
    innerText – pozwala na dostęp do tekstu, podobnie jak
    textContent
    textContent – dawniej co prawda istniała opisana przez nas różnica przy ustawieniu właściwości
    display:none
    display:none w CSS dla elementu (obiektu) zdefiniowanego w HTML, jednak we współczesnych przeglądarkach działanie obu właściwości zostało ujednolicone
  • innerHTML
    innerHTML – pozwala dodawać znaczniki HTML podczas wypisywania, co może być niebezpieczne
  • outerHTML
    outerHTML – dając dostęp także do samego znacznika, pozwala nawet podmienić cały element (obiekt) na inny
  • Interpolacja łańcuchów, czyli zastosowanie “szablonów tekstowych” (ang. template strings), zapisanych w tzw. backticks
    `
    ` poprawia czytelność wypisywania, zwłaszcza dla wielu zmiennych, które normalnie trzeba by konkatenować operatorem
    +
    +:
Pokaż jako tekst
Skopiuj ten kod
Otwórz kod w nowym oknie
EnlighterJS
// template strings
console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`);
// klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę!
console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");
// template strings console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`); // klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę! console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");
// template strings
console.log(`Użytkownik: ${imie} ${nazwisko}, wiek: ${wiek} lat`);

// klasyczna konkatenacja - zapis dłuższy oraz łatwiej tu o literówkę!
console.log("Użytkownik: " + imie + " " + nazwisko + ", wiek: " + wiek + " lat");
Rodzaje uchwytów elementów DOM
Poprzednie
Atrybut onclick vs. addEventListener
Dalej

Mirosław Zelent i Damian Stelmach – zmieniamy naukę informatyki na bardziej przystępną. Wierzymy w nauczanie, które rozpala pasję, a nie takie, które wynika z przymusu. Naszym celem jest osiągać wielokrotnie zadziwiający stopień przyswajalności materiału. Taki, który pozwoli każdemu, kto tylko zechce popracować, stawać się o mały krok lepszym w tym co robi. Temat po temacie, film po filmie, wykład po wykładzie.

Motto: Nie porównuj siebie do innych – jedyną osobą od której powinieneś być lepszy jesteś ty sam z dnia wczorajszego

  • Logowanie / Zarejestruj się
  • Regulamin serwisu
  • Polityka prywatności
  • Nasz kanał YouTube
  • Egzamin-informatyk.pl
  • Egzamin-programista.pl
  • Pasja-informatyki.pl
  • Blog informatyczny
  • Fanpage na Facebooku
  • Forum dyskusyjne
  • Nasz podcast
  • Profil Patronite
2025 © Wszelkie prawa zastrzeżone. Zdaj informatyka - kursy online z kwalifikacji INF.02 i INF.03, które pomogą Ci zdać egzaminy w technikum, przygotowane przez Damiana Stelmacha i Mirosława Zelenta - nauczycieli znanych z kanału Pasja informatyki w YouTube.
Dbamy o Twoją prywatność

Korzystamy z plików cookies lub podobnych technologii umożliwiających poprawne działanie strony oraz w celu dostosowania oferty do Twoich potrzeb. Dowiedz się w polityce prywatności jak serwis i nasi partnerzy zbierają oraz wykorzystują dane. Możesz zaakceptować wykorzystanie przez nas plików i przejść do serwisu lub dostosować ich użycie wedle własnych preferencji.

Funkcjonalne Zawsze aktywne
Przechowywanie lub dostęp do danych technicznych jest ściśle konieczny do uzasadnionego celu umożliwienia korzystania z konkretnej usługi wyraźnie żądanej przez subskrybenta lub użytkownika, lub wyłącznie w celu przeprowadzenia transmisji komunikatu przez sieć łączności elektronicznej.
Preferencje
Przechowywanie lub dostęp techniczny jest niezbędny do uzasadnionego celu przechowywania preferencji, o które nie prosi subskrybent lub użytkownik.
Statystyka
Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do celów statystycznych. Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do anonimowych celów statystycznych. Bez wezwania do sądu, dobrowolnego podporządkowania się dostawcy usług internetowych lub dodatkowych zapisów od strony trzeciej, informacje przechowywane lub pobierane wyłącznie w tym celu zwykle nie mogą być wykorzystywane do identyfikacji użytkownika.
Marketing
Przechowywanie lub dostęp techniczny jest wymagany do tworzenia profili użytkowników w celu wysyłania reklam lub śledzenia użytkownika na stronie internetowej lub na kilku stronach internetowych w podobnych celach marketingowych.
Zarządzaj opcjami Zarządzaj serwisami Zarządzaj {vendor_count} dostawcami Przeczytaj więcej o tych celach
Dostosuj
{title} {title} {title}
Zdaj-informatyka.pl
Zalogować sięZapisać się

Zalogować się

Nie masz konta? Zapisać się
Nie pamiętasz hasła?

Zapisać się

Masz już konto? Zalogować się