Podczas tworzenia kodu JavaScript używasz znaków, które muszą być zrozumiane nie tylko przez innych programistów, ale także przez komputery. Standardy takie jak Unicode i ASCII zapewniają spójność i jednoznaczność reprezentacji znaków, ułatwiając dialog między programistami a maszynami.

ASCI

ASCII (American Standard Code for Information Interchange) to standard kodowania znaków, który przypisuje liczbom całkowitym (od 0 do 127) różne znaki, takie jak litery alfabetu, cyfry, znaki interpunkcyjne itp. Oryginalnie był oparty na 7-bitowym kodowaniu, co pozwalało na zakodowanie 128 znaków. ASCII pierwotnie był zaprojektowany głównie do obsługi języka angielskiego i nie obejmuje znaków specyficznych dla innych języków.

Przykłady kodów ASCII:

  1. Litera 'A’: ASCII – 65
  2. Cyfra '1′: ASCII – 49
  3. Znak spacji: ASCII – 32
  4. Znak nowej linii: ASCII – 10
  5. Znak @: ASCII – 64

Aby uzyskać kod ASCII danego znaku, użyj metody charCodeAt(0). Na przykład:

console.log("ASCII dla litery 'A':", 'A'.charCodeAt(0));
//WYNIK:
//ASCII dla litery 'A': 65

Możesz również wyświetlić znak na podstawie jego kodu ASCII, używając metody String.fromCharCode(). Na przykład:

console.log("Znak ASCII o kodzie 65:", String.fromCharCode(65));
//WYNIK:
//Znak ASCII o kodzie 65: A

Unicode

Unicode to standard kodowania znaków, który ma na celu obejście ograniczeń ASCII, który umożliwia przypisanie unikalnego identyfikatora (kodu) dla praktycznie każdego znaku używanego na świecie. Znaki Unicode są reprezentowane za pomocą różnych rozmiarów (8-bit, 16-bit, 32-bit), co pozwala na reprezentację dużej ilości znaków.

Przykłady kodów Unicode:

  1. Litera 'A’: Unicode – U+0041
  2. Cyfra '1′: Unicode – U+0031
  3. Znak serca '❤’: Unicode – U+2764
  4. Emoji uśmiechnięta twarz '😊’: Unicode – U+1F60A
  5. Chiński znak '你’ (ty): Unicode – U+4F60

W JavaScript możesz używać codePointAt(0) do wyświetlania kodu Unicode znaku i String.fromCodePoint() do wyświetlania znaku na podstawie jego kodu Unicode. Na przykład:

console.log("Unicode dla uśmiechniętej buźki:", '😊'.codePointAt(0));
//WYNIK: Unicode dla uśmiechniętej buźki: 128522

//=================================

console.log("Znak Unicode o kodzie 128522:", String.fromCodePoint(128522));
//WYNIK: Znak Unicode o kodzie 128522: 😊

HTML Entities

Kodowanie HTML entities jest używane w HTML do reprezentowania znaków o specjalnym znaczeniu lub trudnych do bezpośredniego umieszczenia w kodzie HTML. To jest istotne zwłaszcza przy osadzaniu fragmentów kodu HTML za pomocą JavaScript.

Przykłady HTML entities:

  • &lt; reprezentuje znak „<„
  • &gt; reprezentuje znak „>”

Wstawiając tekst zawierający znaki specjalne (np. <, >, &) do strony HTML za pomocą JavaScript, istnieje ryzyko ataku XSS, szczególnie gdy tekst ten pochodzi od użytkownika. Znaki < i > w języku HTML służą do otwierania i zamykania tagów, a wartości między nimi jest interpretowane przez przeglądarkę.

Przeglądarka, natykając się na <script> traktuje to jako początek bloku skryptu JavaScript. Dlatego, gdy tekst pochodzi od użytkownika, może stanowić zagrożenie bezpieczeństwa (XSS).

Natomiast, przy &lt;script&gt;, przeglądarka interpretuje to jako zwykły ciąg znaków, a nie jako znacznik <script>. Pozwala to uniknąć wykonania potencjalnie niebezpiecznego kodu JavaScript. Kodowanie HTML entities jest narzędziem bezpieczeństwa, pomagającym zapobiegać niepożądanym interpretacjom znaków specjalnych, co jest szczególnie istotne przy manipulacji treścią użytkownika.

W JavaScript można używać UNICODE, co umożliwia stosowanie znaków z różnych języków w nazwach zmiennych, ale zaleca się stosowanie ASCII dla większej czytelności i kompatybilności.

const promień = 3.14;

console.log(promień);
//WYNIK: 3.14

Sekwencja ucieczki / znak ucieczki / eng. escape sequence

W programowaniu czasami potrzebujemy użyć specjalnych znaków, które są trudne do wprowadzenia bezpośrednio, jak np. cudzysłowy wewnątrz stringów. Tutaj przydają się sekwencje ucieczki, które zaczynają się od ukośnika (\). Pozwalają one na wstawienie specjalnych znaków, jak cudzysłów, w stringach. Na przykład, by umieścić cudzysłów wewnątrz stringa, piszemy \", co mówi JavaScriptowi, że to część tekstu, a nie koniec stringa.

Oto kilka popularnych znaków ucieczki używanych w JavaScript:

// Znak nowej linii
console.log("Pierwsza linia\nDruga linia");
//WYNIK:
//Pierwsza linia
//Druga linia

//=================================

//Tabulacja (Tab)
console.log("Pierwsza kolumna\tDruga kolumna");
//WYNIK:
//Pierwsza kolumna	Druga kolumna

//=================================

console.log('To jest apostrof: \'');
//WYNIK:
//To jest apostrof: '

//=================================

console.log("To jest cudzysłów: \"");
//WYNIK:
//To jest cudzysłów: "

//=================================

console.log("To jest backslash: \\");
//WYNIK:
//To jest backslash: \

Nie używając sekwencji ucieczki dostaniem błąd np:

console.log("To jest cudzysłów: "");
//Dostaniemy błąd:
//caught SyntaxError: missing ) after argument list

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *