Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

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 *