Categories JavaScript

Chuỗi trong JavaScript

Chuỗi trong JavaScript dùng để lưu giữ và thao tác văn bản.

Một chuỗi trong JavaScript đơn giản dùng để lưu giữ dãy ký tự như là “Nguyễn Đức Anh”.

Một chuỗi là văn bản bất kỳ nằm trong dấu nháy, bạn có thể sử dụng dấu nháy đơn hoặc dấu nháy kép:

Ví dụ

var carname = "Volvo XC60";
var carname = 'Volvo XC60';

Bạn có thể sử dụng dấu nháy trong chuỗi, miễn là nó không được trùng với dấu nháy bao quanh chính chuỗi đó.

Ví dụ

var answer = "Tôi 'ổn'";
var answer = "Họ gọi anh ý là 'cá mập'";
var answer = 'Cảnh sát đặt biệt danh cho hắn là "quỷ mặt cười"';

Độ dài của chuỗi

Bạn có thể dùng thuộc tính length để tìm độ dài của chuỗi.

Ví dụ

var txt = "Nguyễn Đức Anh - Kiến càng";
var sln = txt.length;

Các ký tự đặc biệt

Bởi vì các chuỗi phải được viết bằng cách đưa vào trong dấu nháy, vì vậy JavaScript sẽ không hiểu được chuỗi như thế này:

var y = "Trường đó là "ngôi trường đáng sợ" với hầu hết bọn trẻ."

Chuỗi sẽ bị cắt nhỏ thành “Trường đó là “.

Gải pháp để tránh rắc rối này là sử dụng ký tự escape \

Dấu sẹc ngược (backslash) giúp đưa các ký tự đặc biệt vào trong chuỗi ký tự:

Ví dụ

var x = 'Họ gọi anh ý là \"cá mập\"';

Ký tự sẹc ngược (\) có thể được sử dụng để chèn ký tự đặc biệt vào bên trong chuỗi.

Dưới đây là danh sách các ký tự đặc biệt có thể thêm vào chuỗi văn bản với dấu sẹc ngược:

Code Đầu ra
\’ dấu nháy đơn
\” dấu nháy kép
\\ backslash
\n dòng mới
\r carriage return
\t tab
\b khoảng trống
\f form feed

Bẻ các dòng code dài

Để việc đọc được dễ dàng, các nhà lập trình thường tránh sử dụng các dòng code có độ dài hơn 80 ký tự.

Nếu câu lệnh JavaScript không vừa trong một dòng, vị trí tốt nhất để xuống dòng là bẻ nó ở phần ngay sau toán tử:

Ví dụ

document.getElementById("demo").innerHTML =
 "Kiến càng.";

Bạn cũng có thể bẻ đoạn code trong một chuỗi văn bản với dấu sẹc đơn:

Ví dụ

document.getElementById("demo").innerHTML = "Đức Anh \
 Plus!";

Phương thức \ không phải là một tiêu chuẩn trogn ECMAScript (JavaScript).

Một số trình duyệt không cho phép khoảng trống sau ký tự \

Cách an toàn (nhưng chậm hơn chút ít) khi bẻ một chuỗi dài là sử dụng phép cộng chuỗi:

Ví dụ

document.getElementById("demo").innerHTML = "Đức Anh" +
 "Plus!";

Bạn không thể bẻ một đoạn code với một dấu sẹc ngược như dưới đây:

Ví dụ

document.getElementById("demo").innerHTML = \
 "Kiến càng!";

Chuỗi có thể là đối tượng

Bình thường, chuỗi trong JavaScript là các giá trị nguyên thuỷ, được tạo ra từ các chữ cái:

var firstName="Đức Anh" 

Nhưng chuỗi cũng có thể được định nghĩa như là các đối tượng với từ khoá new:

var firstName= new String("Đức Anh")

Ví dụ

var x = "Đức Anh"; // kiểu của x sẽ trả về chuỗi
var y = new String("Đức Anh");
 // kiểu của y sẽ trả về đối tượng

Đừng tạo các chuỗi thành dạng đối tượng. Nó sẽ làm giảm tốc độ thực thi lệnh đi nhiều. Từ khoá new làm phức tạp mã. Điều này có thể tạo ra các kết quả không mong đợi.

Khi sử dụng == (toán tử bằng) bạn cần chú ý một vài thứ.

Ví dụ

var x = "Đức Anh";
var y = new String("Đức Anh");// (x == y) là đúng vì x và y có cùng giá trị.

Khi sử dụng toán tử === (bằng chặt), thì x và y sẽ không còn bằng chặt nữa vì, bằng chặt yêu cầu phải bằng cả về giá trị và kiểu, trong khi x và y là hai kiểu khác nhau.

Ví dụ

var x = "Đức Anh";
var y = new String("Đức Anh");// (x === y) không đúng bởi vì x và y là hai kiểu khác nhau (một kiểu là chuỗi, một kiểu là đối tượng).

Hoặc thậm chí các đối tượng không thể so sánh được:

Ví dụ

var x = new String("Đức Anh");
var y = new String("Đức Anh");// (x == y) là sai bởi vì x và y là các đối tượng khác nhau
 // (x == x) là đúng bởi vì cả hai chỉ cùng một đối tượng.
Back to Top