Vì
0 vàCode language: JavaScript [javascript]
console.log[s1 === s2]; // true
1 có cùng ký tự nên chúng bằng nhau khi bạn so sánh chúng bằng toán tửCode language: JavaScript [javascript]
console.log[s1 === s2]; // true
2Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
Xem xét ví dụ sau
Code language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
Trong ví dụ này,
0 vàCode language: JavaScript [javascript]
console.log[s1 === s2]; // true
1 giống nhau. Nhưng so sánh s1 === s2 đánh giá làCode language: JavaScript [javascript]
console.log[s1 === s2]; // true
5
console.log[s1 === s2]; // true
Code language: JavaScript [javascript]
Để hiểu cách thức hoạt động của nó, trước tiên bạn cần biết khái niệm về biểu đồ và kết hợp các ký tự
đồ thị là gì
Một grapheme là đơn vị chức năng nhỏ nhất của một hệ thống chữ viết
Ví dụ: chuỗi
6 có bốn chữ cái.Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
7,Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
8,Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
9 vàCode language: JavaScript [javascript]
console.log[s1 === s2]; // true
0 [hoặcCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
1 vớiCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
2]. Cách bạn xem mỗi ký tự là một đơn vị viết được gọi là grapheme
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
Code language: JavaScript [javascript]
Và một số biểu đồ có thể được biểu diễn bằng các chuỗi ký tự khác nhau
Có một số ký tự khi bạn đặt chúng sau một ký tự, nó sẽ thay đổi ký tự trước đó. Các ký tự này được gọi là các ký tự kết hợp
Ký tự kết hợp là gì
Ký tự kết hợp là ký tự áp dụng cho ký tự cơ sở tiền lệ để tạo biểu đồ
Trong ví dụ của chúng ta,
0 là một grapheme nguyên tử. Và bạn có thể mã hóa nó bằng cách sử dụng chữ thườngCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
1 [ký tự cơ bản] và ký tự kết hợp [◌́]Code language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
7Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
Trong JavaScript, ký tự é được biểu diễn như sau
8
console.log[s1 === s2]; // true
Code language: JavaScript [javascript]
Trong ví dụ này,
5 là chuỗi thoát Unicode của ký tự kết hợp ◌́Code language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
Ngoài ra, bạn có thể mã hóa cùng một biểu đồ é bằng cách sử dụng chữ thường
1 với ký tự cấp tínhCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
1Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
Bây giờ, nếu bạn so sánh
7 vàCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
8 của cùng một biểu đồCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
0, bạn sẽ thấy rằng chúng không bằng nhauCode language: JavaScript [javascript]
const s1 = 'café'; const s2 = 'café'; console.log[s1===s2]; // false
5Code language: JavaScript [javascript]
console.log[s1 === s2]; // true
Để so sánh các chuỗi này một cách an toàn, bạn sử dụng phương pháp
70. Phương thức này trả về dạng chuẩn hóa Unicode của một chuỗi. Ví dụCode language: JavaScript [javascript]
console.log[s1 === s2]; // true