Kurs obiektowego JavaScript (5)

Autor: Damian Chodorek • Opublikowany: 27 września 2014 • Ostatnia aktualizacja: 25 czerwca 2017 • Kategoria: javascript, kursy

Dokładniejsze omówienie typu String. Więcej o konwersjach i znakach specjalnych.

Być może znasz i rozumiesz działanie typu String z innych języków programowania. W JavaScript zachowuje się on podobnie. String to ciąg znaków, które reprezentują tekst. Każda wartość umieszczona pomiędzy pojedynczym lub podwójnym znakiem cudzysłowu jest typu String.

var a="To jest typu String";
var b='To również';
typeof a; //"string
typeof b; //"string"

typeof ""; //brak ciągu znaków w "", to też String

Konkatenacja – łączenie ciągów

Jeśli użyjesz operatora dodawania na zmiennych typu String, to wynikiem będzie ciąg znaków stanowiący ich połączenie;

var a="abc";
var b="def";
var c=a+b+'ghj';
c; //"abcdefghj"

Uwaga! Jeśli którakolwiek ze zmiennych biorących udział w dodawaniu będzie typu String, wszystkie liczby będą potraktowane jak ciągi tekstowe i wynikiem będzie ich konkatenacja.

var num=1;
var strNum="2";

num+strNum;
typeof (num+strNum);

Konwersje

Jeśli użyjesz dowolnego operatora arytmetycznego, poza dodawaniem, na zmiennych przechowujących String wyglądający jak liczba, to zmienne tekstowe zostaną przekonwertowane na liczbowe, a wynikiem będzie wynik danej operacji arytmetycznej

var a=6;
var b="2"; /*to jest zmienna tekstowa, która wygląda jak liczbowa*/

a*b; //12
a/b; //3
a-b; //4
++b; //3

Przypominam raz jeszcze, że z operatorem + jest inaczej. W przypadku jego użycia, to liczby będą przekonwertowane na tekst, a następnie wykonana będzie konkatenacja.

Żeby przekonwertować dowolną liczbę zapisaną jako String na typ Number, można pomnożyć ją przez 1. Są jednak lepsze sposoby, np. funkcja parseInt(), która będzie omówiona w późniejszych lekcjach. Jeśli użyjesz do tego celu mnożenia przez 1, to możesz dostać błędny wynik. Przykład poniżej.

"mikser"*1; //ewidentnie coś jest nie tak, wynikiem będzie NaN

Warto więc być ostrożnym przy tej metodzie.

Z drugiej strony, aby przekonwertować liczbę na typ String, należy wykonać na niej operację konkatenacji z pustym ciągiem znaków.

typeof 123; //"number"
typeof (123+""); //"string"

Znaki specjalne

Co gdybyś w tekście chciał użyć znaku "?

var x="Jan Kowalski powiedział: "cytat Jana""; /*oczywiście nie da się w ten sposób użyć znaku ", żeby zacytować Jana*/

Aby umożliwić sytuacje podobne do powyższej, powstały znaki specjalne, które można wstawić w tekst. Z punktu widzenia programisty będą one wyglądać dziwnie, ale kiedy pojawią się na ekranie użytkownika, będą wyglądać jak należy. Najlepiej zilustruje to przykład.

var x="Jan Kowalski powiedział \"cytat Jana\""; //w programie zapisano cudzysłów jako \"
x; //ale konsola wyświetla zmienną tak: "cytat Jana"

W tekście pojawiła się konstrukcja \', która umożliwia wstawienie cudzysłowia do ciągu znaków. Istnieje wiele innych takich konstrukcji, które mają specjalne znaczenie, np. nowy wiersz, tab itp. Poniżej tabelka z ich listą.

Symbol Znaczenie Przykład
\
Znak bazowy do tworzenia znaków specjalnych. Jeśli wstawisz go w tekście pojedynczo, nie pojawi się.
"abc\d"; //backslash zniknie
\\
Wstawia backslash w tekście.
"abc\\d"; //backslash pojawi się
\'
Pojedynczy cudzysłów w tekście.
"I don\'t know";
\"
Podwójny cudzysłów.
"Jan Kowalski powiedział: \"cytat Jana\"";
\n
Koniec wiersza. Odpowiada za przejście do kolejnego wiersza.
"abc\ndef"; /*tekst wyświetlony będzie w dwóch wierszach*/
\r
Powrót karetki. Więcej na ten temat tutaj.
"abc\n\rdef";
\t
Znak tabulacji.
"abc\tdef" //"abc	def"
\u
\u pozwala na korzystanie z Unicode.
"\u044F;" /*pokaże literę z Cyrylicy*/

W tym artykule to wszystko. Przejdź do następnej części:

Kurs obiektowego JavaScript (6)

Zobacz również
Kurs obiektowego JavaScript (3)Tworzenie zmiennych oraz podstawowe operatory w JS.
Kurs obiektowego JavaScript (4)Typy danych w JS. Omówienie typu liczbowego oraz operatora typeof.
Kurs obiektowego JavaScript (6)Opis typu Boolean. Wartości fałszywe i operatory logiczne.
Kurs obiektowego JavaScript (7)Podstawowe informacje o tablicach.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.