W języku JavaScript mamy 2 typy string'ów. Pierwszym z nich jest typ prosty string, który można zapisać w taki sposób:
let courseName = 'JavaScript Basics';
typeof courseName; //string
Drugim sposobem natomiast jest obiekt string, którego zapiszesz w taki sposób:let courseTitle = new String('JavaScript');
typeof courseTitle; //object
W obu powyższych przypadkach po kropce możesz użyć właściwości oraz metod obiektu string.Przejdźmy do przykładów:
let sentence = 'My favorite course is a JavaScript basics.';
Sprawdzanie długości zmiennej:console.log(sentence.length); //42
Sprawdzanie konkretnego znaku:console.log(sentence.charAt(1)); //y
console.log(sentence[1]); //y
Pamiętaj, że jeśli wykonujesz jakieś metody na obiekcie string, to wówczas jest tworzony nowy string, tzn. pierwotny string na którym wykonujesz metodę nie zmienia się. Musisz, przypisać nową wartość do pierwotnego stringa. Zobacz to na przykładzie metody replace, metoda ta zamienia podane w parametrach znaki:let sentence = 'My favorite course is a JavaScript basics.';
console.log(sentence.replace('JavaScript','C#')); //My favorite course is a C# basics.
console.log(sentence); //My favorite course is a JavaScript basics.
Jak widzisz, mimo że zamieniłem słowo JavaScript na C# w zmiennej sentence ciągle występuje słowo JavaScript. Jak zatem wykonać metodę, tak aby zmienił się string? Musisz pamiętać o przypisaniu nowej wartości do stringa, początkujący często zapominają o tym szczególe. Prawidłowo powinno to wyglądać w taki sposób:let sentence = 'My favorite course is a JavaScript basics.';
sentences = sentence.replace('JavaScript','C#');
console.log(sentences); //My favorite course is a C# basics.
Odnośnie metody replace pokaże Ci jeszcze jedną ciekawostkę, załóżmy że chcesz zmienić wszystkie znaki 'a' na 'x'. Na pewno na początku spróbujesz to zrobić takim sposobem:let sentence = 'My favorite course is a JavaScript basics.';
sentence = sentence.replace('a', 'x');
console.log(sentence); //My fxvorite course is a JavaScript basics.
Jak widać coś poszło nie tak, metoda replace zamienia tylko 1 napotkany znak, więc jeśli chcesz zmienić wszystkie znaki 'a' w tym zdaniu musisz użyć takiego zapisu:let sentence = 'My favorite course is a JavaScript basics.';
sentence = sentence.replace(/a/g, 'x');
console.log(sentence); //My fxvorite course is x JxvxScript bxsics.
Kolejną wartą uwagi metodą jest indexOf:console.log(sentence.indexOf('My')); //0
console.log(sentence.indexOf('my')); //-1
console.log(sentence.indexOf('JavaScript')); //24
console.log(sentence.indexOf('C#')); //-1
Metoda indexOf zwraca index podanego w parametrze stringa. Jeżeli nie znajdzie podanego znaku, lub ciągu znaków zwraca -1. Wielkość liter ma znaczenie.Kolejne metody to toUpperCase() oraz toLowerCase(), które zmieniają wszystkie znaki kolejno do dużych oraz małych liter:
console.log(sentence.toLowerCase()); //my favorite course is a javascript basics.
console.log(sentence.toUpperCase()); // MY FAVORITE COURSE IS A JAVASCRIPT BASICS.
Wspomnę jeszcze o metodzie trim(), która usuwa z początku i z końca wartości zmiennej białe znaki:let course = ' JavaScript ';
console.log(course.trim()); //'JavaScript'
Pokażę Ci jeszcze jeden przykład, będzie to metoda substring(). Metoda substring zwraca 'wycięty' ciąg znaków ze string'a. Przyjmuje 2 parametry, pierwszy to index, czyli 1 znak od którego będą wycinane znaki, a drugi długość znaków ile ma zostać wyciętych:let course = 'JavaScript';
console.log(course.substring(0, 4));//Java
Myślę, że tyle przykładowych właściwości i metod wystarczy w tym artykule. Podobnie jak w przypadku obiektu Math, tak samo i tutaj jeśli chcesz zobaczyć więcej metod odwiedź oficjalną dokumentację, którą znajdziesz tutaj - string. Jeżeli chcesz, abym przedstawił więcej przykładów zapraszam do kontaktu, postaram się wtedy napisać kolejny artykuł na ten temat.Na koniec kilka słów jeszcze o tym jak użyć znaków specjalnych w string'ach. Aby móc używać specjalnych znaków w string'ach, należy poprzedzić ten znak znakiem: \, np.:
let course = 'Course JavaScript'a'; //błąd
let courseOk = 'Course JavaScript\'a';
console.log(courseOk); //Course JavaScript'a
let someDate = '2018\\10';
console.log(someData); //2018\10
Jeśli chcesz zapisać zdanie w 2 liniach musisz użyć znaku \n:let course = 'Course\nJavaScript';
console.log(course); //Course
//JavaScript
Nie jest to najlepszy sposób do zapisywania nowej linii, ale również bardzo popularny. O tym, jak jeszcze możesz zapisać nową linię napiszę w kolejnych artykułach, gdzie przedstawię nowy zapis string'ów, który został wprowadzony w ES6.To wszystko co chciałem Ci przekazać w tym artykule. Zapraszam Cię do kolejnych artykułów z serii podstaw programowania w języku JavaScript.
Poprzedni artykuł - Obiekt Math w JavaScript.
Następny artykuł - Obiekt Date w JavaScript.