KWALIFIKACJA INF3 - STYCZEŃ 2019

PYTANIE NR 28.
Instrukcja JavaScript: document.write(5==='5′); wyświetli
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Wyrażenie 5 === '5' porównuje wartości z uwzględnieniem typu. Liczba 5 i łańcuch znaków '5' mają różne typy, a operator === nie wykonuje niejawnej konwersji. Dlatego wynik porównania jest wartością logiczną false i to zostanie wypisane przez document.write().

Pełne wyjaśnienie:

W JavaScript operator === oznacza ścisłą równość (strict equality). Taki operator porównuje jednocześnie:

  • wartość (np. 5),
  • typ danych (np. number vs string).

W zapisie 5 === '5' lewa strona jest liczbą (typ number), a prawa strona jest łańcuchem znaków (typ string). Ponieważ typy są różne, porównanie ścisłe daje wynik false – bez prób zamiany '5' na 5.

Instrukcja document.write(...) wypisuje do dokumentu HTML tekstową reprezentację wyniku, więc na stronie zobaczysz słowo false.

Dlaczego pozostałe odpowiedzi są błędne?

  • true – byłoby prawdziwe tylko wtedy, gdyby porównanie uznało typy za zgodne albo wykonało konwersję. To zachowanie dotyczy raczej luźnej równości ==, nie ===.
  • 1 – JavaScript nie zwraca 1/0 jako wyniku porównania; operatory równości zwracają wartości logiczne true albo false.

Wskazówka egzaminacyjna: gdy widzisz porównanie liczby i łańcucha, najpierw oceń typy. Jeśli użyto ===, różne typy niemal zawsze oznaczają wynik false (poza szczególnymi przypadkami jak NaN, które rządzi się własnymi regułami).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Operator === sprawdza ścisłą równość: porównuje wartość i typ bez niejawnej konwersji. Jeśli typy są różne (np. number i string), wynik jest zwykle false, nawet gdy "wyglądają" tak samo.
Bo lewa strona jest liczbą (number), a prawa jest łańcuchem (string). Przy === JavaScript nie zamienia automatycznie '5' na 5, więc różne typy oznaczają brak równości i wynik false.
Tak. Przy == JavaScript może wykonać niejawną konwersję typów, więc porównanie liczby 5 z napisem '5' często kończy się true. Przy === konwersji nie ma, więc wynik pozostaje false.
document.write(true) wypisze w dokumencie tekst true, a document.write(false) wypisze tekst false. To nie są liczby 1/0, tylko wartości logiczne zamienione na postać tekstową.
Najczęściej mylone są number i string, bo dane z formularzy i z atrybutów HTML zwykle są łańcuchami. Typowym błędem jest porównywanie ich bez konwersji (np. parseInt/Number), albo mylenie operatorów == i ===.
Wartość z pola formularza jest zwykle string. Najpierw wykonaj konwersję, np. Number(wartosc), a potem porównuj ===. Dzięki temu unikniesz niespodzianek związanych z niejawną konwersją i porównujesz typy zgodnie z intencją.
Najbezpieczniej używać === domyślnie, bo zmniejsza ryzyko błędów przez niejawne konwersje. == bywa użyteczny w rzadkich przypadkach, ale na egzaminach i w praktyce programistycznej zwykle preferuje się === dla czytelności i przewidywalności.
Operatory porównania w JavaScript zwracają wartości logiczne true albo false. W przeciwieństwie do niektórych konwencji (np. w C w pewnych kontekstach), nie jest tak, że wynik porównania to 1 lub 0. Dlatego "1" jest mylącym dystraktorem.
Sprawdź typy obu stron: liczba, łańcuch, boolean, null/undefined. Jeśli typy są różne i użyto ===, wynik to zwykle false. Dopiero gdy typy są takie same, analizuj wartości. Ta kolejność oszczędza czas i zmniejsza liczbę pomyłek.
Zwykle nie. document.write() może nadpisać zawartość strony, jeśli zostanie wywołane po załadowaniu dokumentu. W praktyce częściej używa się modyfikacji DOM (np. textContent/innerHTML) lub logowania do konsoli. Na egzaminie spotyka się je jako prosty sposób prezentacji wyniku.
info

Około 79% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Specjaliści zwracają uwagę: "Wyrażenie 5 === '5' porównuje wartości z uwzględnieniem typu."

Źródła:

  • MDN Web Docs: Strict equality (===) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Strict_equality (accessed 2026-02-27)
  • MDN Web Docs: Equality comparisons and sameness - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness (accessed 2026-02-27)
  • MDN Web Docs: Document.write() - https://developer.mozilla.org/en-US/docs/Web/API/Document/write (accessed 2026-02-27)

Materiały:

  • Dokumentacja MDN: operatory porównania i równości w JavaScript
  • Dokumentacja MDN: typy danych i konwersje
  • Specyfikacja ECMAScript: Strict Equality Comparison

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego