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:
StringO - 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:
Numberchar0,Numberchar1... - 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"); // ""
