Obsługa tekstu w JavaScript - String
Jak JavaScript radzi sobie z obsługą tekstu?
- Konwertowanie wartości na tekst - String
Jak skonwertować dowolną wartość na prosty tekst?
- Tworzenie obiektu tekstowego - new String
Jak przekształcić dowolną wartość na obiekt tekstowy?
- Konwersja kodu liczbowego na znak Unicode - fromCharCode
Jak przekształcić kod liczbowy na odpowiadający mu znak Unicode?
Konwertowanie wartości na tekst - 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(); // "" 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"
Tworzenie obiektu tekstowego - new String
Jak przekształcić dowolną wartość na obiekt tekstowy?
new String
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() 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"
Konwersja kodu liczbowego na znak Unicode - 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
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"); // ""