Chuỗi JavaScript

Chuỗi JavaScript được sử dụng để lưu trữ và xử lý văn bản.

Chuỗi JavaScript

Chuỗi JavaScript là một số ký tự trong ngoặc kép.

Mô hình

var x = \"Bill Gates\";

Thử ngay

Bạn có thể sử dụng dấu ngoặc kép đơn hoặc dấu ngoặc kép kép:

Mô hình

var carname = \"Porsche 911\";
var carname = 'Porsche 911';

Thử ngay

Bạn có thể sử dụng dấu ngoặc kép trong chuỗi, chỉ cần không khớp với dấu ngoặc kép bao quanh chuỗi:

Mô hình

var answer = \"It's good to see you again!\";
var answer = \"He is called 'Bill'\";
var answer = 'He is called \"Bill\"';

Thử ngay

dài của chuỗi

thuộc tính nội bộ length Có thể trả về chuỗi củadài:

Mô hình

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Thử ngay

ký tự đặc biệt

Do chuỗi phải được bao bọc bởi dấu ngoặc kép, JavaScript sẽ hiểu nhầm đoạn chuỗi này:

var y = "Trung Quốc là quê hương của gốm sứ, vì vậy china với "China (Trung Quốc)" có cùng tên."

chuỗi này sẽ được chia thành "Trung Quốc là quê hương của gốm sứ, vì vậy china với "China (Trung Quốc)" có cùng tên."

Cách giải quyết vấn đề này là sử dụng \ ký tự nghiêng ngược

ký tự nghiêng ngược chuyển đổi ký tự đặc biệt thành ký tự chuỗi:

Kết quả miêu tả
\' ' đơn vị引
\" " dấu ngoặc kép
\\\ \ dấu chéo ngược

Mô hình

chuỗi \" Chèn dấu ngoặc kép kép trong chuỗi:

Mô hình

var x = "Trung Quốc là quê hương của gốm sứ, vì vậy china và\"China (Trung Quốc)\" có cùng tên."

Thử ngay

chuỗi \' Chèn dấu ngoặc kép đơn trong chuỗi:

Mô hình

var x = 'It\'s good to see you again';

Thử ngay

chuỗi \\\ Chèn dấu chéo ngược trong chuỗi:

Mô hình

var x = "ký tự \\ được gọi là dấu chéo ngược.";

Thử ngay

Ký tự chuyển đổi (\cũng có thể được sử dụng để chèn các ký tự đặc biệt khác trong chuỗi.

Bảy chuỗi chuyển đổi khác có hiệu lực trong JavaScript:

Kết quả
\b Phím Backspace
\f Trang
\n Dòng mới
\r Enter
\t Tab ngang
\v Tab dọc

Bảy ký tự chuyển đổi này ban đầu được thiết kế để kiểm soát máy đánh chữ, máy điện传 và máy传真. Chúng không có ý nghĩa trong HTML.

Phân dòng dòng mã dài

Để có tính đọc tốt nhất, các nhà phát triển thường tránh để mỗi dòng mã vượt quá 80 ký tự.

Nếu một câu lệnh JavaScript không phù hợp với một dòng mã, vị trí phân dòng tốt nhất là sau một toán tử:

Mô hình

document.getElementById("demo").innerHTML =
"Hello Kitty.";

Thử ngay

Bạn cũng có thểtrong chuỗiphân dòng, chỉ cần một dấu chéo ngược:

Mô hình

document.getElementById("demo").innerHTML = "Hello \
Kitty!";

Thử ngay

\ phương pháp này không phải là tiêu chuẩn ECMAScript (JavaScript).

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

Cách an toàn nhất để phân dòng chuỗi dài (nhưng có thể chậm) là sử dụng phép cộng chuỗi:

Mô hình

document.getElementById("demo").innerHTML = "Hello" + 
"Kitty!";

Thử ngay

Bạn không thể phân dòng mã bằng dấu chéo ngược:

Mô hình

document.getElementById("demo").innerHTML = \ 
"Hello Kitty!";

Thử ngay

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

Thường thì chuỗi JavaScript là giá trị nguyên thuỷ, được tạo bằng cách viết trực tiếp:

var firstName = "Bill"

Nhưng chuỗi cũng có thể thông qua từ khóa new Định nghĩa là đối tượng:

var firstName = new String("Bill")

Mô hình

var x = "Bill";
var y = new String("Bill");
// typeof x sẽ trả về string
// typeof y sẽ trả về object

Thử ngay

Đừng tạo chuỗi thành đối tượng. Nó sẽ làm chậm tốc độ thực thi.

new ký tự từ khóa có thể làm cho mã phức tạp hơn. Có thể tạo ra một số kết quả không mong muốn:

Khi sử dụng == ký hiệu bằng nhau, chuỗi bằng nhau là bằng nhau:

Mô hình

var x = "Bill";             
var y = new String("Bill");
// (x == y) là true vì giá trị của x và y bằng nhau

Thử ngay

Khi sử dụng === ký hiệu khi, chuỗi bằng nhau nhưng không bằng nhau vì === ký hiệu cần phải bằng cả loại và giá trị.

Mô hình

var x = "Bill";             
var y = new String("Bill");
// (x === y) là false vì loại của x và y khác nhau (chuỗi và đối tượng)

Thử ngay

thậm chí còn tồi tệ hơn. Đối tượng không thể so sánh:

Mô hình

var x = new String("Bill");             
var y = new String("Bill");
// (x == y) là false vì x và y là đối tượng khác nhau

Thử ngay

Mô hình

var x = new String("Bill");             
var y = new String("Bill");
// (x === y) là false vì x và y là đối tượng khác nhau

Thử ngay

Lưu ý sự khác biệt giữa (x==y) và (x===y).

JavaScript đối tượng không thể so sánh, việc so sánh hai JavaScript sẽ luôn trả về false