Bài 5: Kiểu dữ liệu String trong Javascript
Trong ngôn ngữ lập trình Javascript, kiểu dữ liệu String được sử dụng để biểu diễn và thao tác với một chuỗi ký tự.
Nội dung của bài
Khởi tạo string
Các chuỗi có thể được tạo dưới dạng nguyên thủy, từ các ký tự chuỗi hoặc dưới dạng các đối tượng, bằng cách sử dụng constructor String () để khởi tạo.
// string primitive
const string1 = "A string primitive";
const string2 = 'Also a string primitive';
const string3 = `Yet another string primitive`;
// string object
const string4 = new String("A String object");
Chuỗi nguyên thủy và đối tượng chuỗi có thể được sử dụng thay thế cho nhau trong hầu hết các tình huống.
Truy cập tới Character
Có hai cách để truy cập một ký tự riêng lẻ trong một chuỗi. Đầu tiên là phương thức charAt (
):
return 'cat'.charAt(1) // returns "a"
Một cách khác (được giới thiệu trong ECMAScript 5) là coi chuỗi như một đối tượng giống mảng, trong đó các ký tự riêng lẻ tương ứng với một chỉ số:
return 'cat'[1] // returns "a"
So sánh 2 string
let a = 'a'
let b = 'b'
if (a < b) { // true
console.log(a + ' is less than ' + b)
} else if (a > b) {
console.log(a + ' is greater than ' + b)
} else {
console.log(a + ' and ' + b + ' are equal.')
}
Một kết quả tương tự có thể đạt được bằng cách sử dụng phương thức localeCompare ()
của String instance.
Lưu ý rằng a == b
so sánh các chuỗi trong a và b là bằng nhau theo cách phân biệt chữ hoa chữ thường thông thường. Nếu bạn muốn so sánh mà không liên quan đến ký tự viết hoa hoặc viết thường, hãy sử dụng một hàm tương tự như sau:
function isEqual(str1, str2)
{
return str1.toUpperCase() === str2.toUpperCase()
} // isEqual
Chuyển đổi kiểu dữ liệu khác sang String
Ta nên sử dụng hàm khởi tạo String()
trong mọi trường hợp thay vì dùng toString()
để tránh trường hợp xảy ra dưới đây:
var nullVar = null;
nullVar.toString(); // TypeError: nullVar is null
String(nullVar); // "null"
var undefinedVar;
undefinedVar.toString(); // TypeError: undefinedVar is undefined
String(undefinedVar); // "undefined"
Khởi tạo chuỗi string nhiều dòng
Có 3 cách để làm điều này:
// ES5 //
var myString = 'A rather long string of English text, an error message ' +
'actually that just keeps going and going -- an error ' +
'message to make the Energizer bunny blush (right through ' +
'those Schwarzenegger shades)! Where was I? Oh yes, ' +
'you\'ve got an error and all the extraneous whitespace is ' +
'just gravy. Have a nice day.';
// OR
var myString = 'A rather long string of English text, an error message \
actually that just keeps going and going -- an error \
message to make the Energizer bunny blush (right through \
those Schwarzenegger shades)! Where was I? Oh yes, \
you\'ve got an error and all the extraneous whitespace is \
just gravy. Have a nice day.';
/////////////////////////////////////////////
// ES6 //
const htmlString = `Say hello to
multi-line
strings!`;
String trong Javascript còn rất nhiều thứ hay ho nữa như các method xử lý chuỗi, regex,… mình sẽ đề cập trong những bài viết tiếp theo!