Przejdź do treści

JS / String - Kurs JavaScript (JS)

W tym rozdziale dowiesz się...

Jak JavaScript radzi sobie z obsługą tekstu?

  • JS
    String

    Jak skonwertować dowolną wartość na prosty tekst?

  • JS
    new String

    Jak przekształcić dowolną wartość na obiekt tekstowy?

  • JS
    fromCharCode

    Jak przekształcić kod liczbowy na odpowiadający mu znak Unicode?

String

Jak skonwertować dowolną wartość na prosty tekst?

String()
String(value)
Parametry:
value - wartość do konwersji
Wartość:
skonwertowana prosta wartość tekstowa (nie obiekt)

Konwertuje dowolną wartość na tekst. W przypadku braku argumentów wywołania zwraca pusty tekst.

Inaczej niż konstrukcja new String(...), nigdy nie tworzy nowego obiektu, a jedynie prostą wartość tekstową.

Przykład:

String();          // ""
String(undefined); // "undefined"
String(null);      // "null"
String(true);      // "true"
String(false);     // "false"
String(0);         // "0"
String(-1.2);      // "-1.2"
String(NaN);       // "NaN"
String(Infinity);  // "Infinity"
String("test");    // "test"

new String

Jak przekształcić dowolną wartość na obiekt tekstowy?


new String()
new String(value)
Parametry:
value - wartość na podstawie której zostanie utworzony obiekt
Wartość:
String - nowa instancja obiektu tekstowego

Inaczej niż funkcja String, zawsze tworzy nową instancję obiektu tekstowego, a nie tylko prostą wartość tekstową.

Przykład:

new String();          // new String()
new String(undefined); // new String("undefined")
new String(null);      // new String("null")
new String(true);      // new String("true")
new String(false);     // new String("false")
new String(0);         // new String("0")
new String(-1.2);      // new String("-1.2")
new String(NaN);       // new String("NaN")
new String(Infinity);  // new String("Infinity")
new String("test");    // new String("test")

length

O.length
Parametry:
String O - tekst
Wartość:
Number - długość tekstu

Zawiera wartość naturalną wskazującą, ile znaków znajduje się w tekście. Nie można jej zmieniać ani nie jest ona dostępna w pętli for-in.

Przykład:

var str = "abc";
str.length; // 3
str.length = 1;
str.length; // 3
str;        // "abc"

fromCharCode

Jak przekształcić kod liczbowy na odpowiadający mu znak Unicode?

String.fromCharCode()
String.fromCharCode(char0)
String.fromCharCode(char0, char1...)
Parametry:
Number char0, Number char1... - lista kodów kolejnych znaków tekstu w postaci 16-bitowych liczb naturalnych (0 - 65535)
Wartość:
String - wartość tekstowa

Każdy pojedynczy znak tekstu jest zapisany wewnętrznie w postaci odpowiadającego mu kodu liczbowego. System przechowuje pełną mapę tych kodów, dzięki czemu wiadomo, że np. literze 'a' odpowiada kod 97, 'b' - 98, 'c' - 99 itd. W naszym programie możemy mieć potrzebę jawnie przekształcić taki kod liczbowy na odpowiadający mu znak. Możemy to zrobić właśnie za pomocą funkcji String.fromCharCode.

Aby zapewnić, że przekazane argumenty nie przekraczają dozwolonego zakresu, funkcja może automatycznie wykonać dodatkowe obliczenia:

  • Dla argumentów większych niż 65535 zostanie najpierw obliczona wartość: char % 65536 (reszta z dzielenia przez 65536). Czyli gdy przekażemy wartość 65539, funkcja tak naprawdę weźmie pod uwagę liczbę 3.
  • Dla argumentów mniejszych od zera zostanie najpierw obliczona wartość: char % 65536 + 65536. Czyli gdy przekażemy wartość -3, funkcja tak naprawdę weźmie pod uwagę liczbę 65533.

Funkcja działa odwrotnie do String.prototype.charCodeAt.

Kody dowolnych znaków możesz sprawdzić za pomocą generatora Unicode.

Przykład:

String.fromCharCode(97, 98, 99); // "abc"
String.fromCharCode(65633);      // "a" (65633 % 65536 = 97)
String.fromCharCode(-65439);     // "a" (-65439 % 65536 + 65536 = 97)
String.fromCharCode(97.9);       // "a"
String.fromCharCode(" +97.9 ");  // "a"
 
String.fromCharCode();           // ""
String.fromCharCode(undefined);  // ""
String.fromCharCode(null);       // ""
String.fromCharCode(false);      // ""
String.fromCharCode(0);          // ""
String.fromCharCode(NaN);        // ""
String.fromCharCode(Infinity);   // ""
String.fromCharCode("");         // ""
String.fromCharCode("test");     // ""
String.fromCharCode("97 test");  // ""
Facebook