Trong khi 4 đánh giá là 5. Làm thế nào mà có thể? Hãy cùng tìm hiểu chi tiết cách so sánh chính xác các chuỗi trong JavaScript. Trước khi bắt đầu, tôi sẽ giúp bạn làm quen với các thuật ngữ của grapheme (một đơn vị chữ viết) và ký tự kết hợp (ký tự chuyên biệt giúp thay đổi giao diện của ký tự cơ sở) 1. đồ thị là gìNhìn vào chuỗi sau đây, bạn có thể nói gì về nội dung của nó?
Bạn có thể dễ dàng nhận thấy nó có 4 chữ cái. chữ thường c, chữ thường a, chữ thường f và chữ thường e có nét Cách người dùng nghĩ về một ký tự như một đơn vị viết được đặt tên là grapheme. Chuỗi ví dụ 6 chứa 4 biểu đồ Đây là một định nghĩa chính thức của một grapheme
Ok, điều đó thật thú vị, nhưng nó liên quan như thế nào đến việc so sánh an toàn các chuỗi? Đặc biệt, có một bộ ký tự đặc biệt có tên là các ký tự kết hợp sửa đổi ký tự trước đó để tạo ra các biểu đồ mới. Hãy chi tiết kết hợp các nhân vật 2. ký tự kết hợp là gì
Ký tự kết hợp bao gồm dấu trọng âm, dấu phụ, điểm tiếng Do Thái, dấu nguyên âm tiếng Ả Rập và dấu chỉ Ký tự kết hợp luôn yêu cầu một ký tự cơ sở được áp dụng cho. Bạn nên tránh hiển thị chúng bị cô lập Ví dụ, 7 là một grapheme nguyên tử. Bạn có thể lấy một chữ thường e (ký tự cơ sở) và kết hợp nó với việc kết hợp dấu sắc ◌́ (ký tự kết hợp) để hiển thị biểu đồ. e + ◌́ = é
trong đó 8 là ký tự kết hợp ◌́ Tuy nhiên, lưu ý rằng cùng một 7 có thể được biểu diễn theo một cách khác bằng cách sử dụng chữ e viết thường với ký tự cấp tính________số 8_______ Mặc dù 0 và 1 hiển thị cùng một biểu đồ, tuy nhiên, chúng là các giá trị chuỗi khác nhau
3. So sánh an toàn các chuỗiHiểu rõ hơn về biểu đồ và kết hợp các ký tự, đây là một số quy tắc để so sánh chuỗi an toàn hơn trong JavaScript Đầu tiên, bạn có thể an toàn khi so sánh các chuỗi chứa các ký tự từ (bao gồm các ký tự ASCII) bằng cách sử dụng các toán tử so sánh thông thường 2, 3 hoặc hàm tiện ích 4
Cả Thứ hai, nếu bạn xử lý các ký tự phía trên Mặt phẳng đa ngôn ngữ cơ bản, bao gồm cả việc kết hợp các ký tự, thì bạn sẽ không an toàn khi so sánh các chuỗi bằng cách sử dụng 2, 3 và 4. Điều bạn cần làm thêm là chuẩn hóa các chuỗi được so sánh
Nói một cách đơn giản, chuẩn hóa chuỗi làm cho các chuỗi tương đương chính tắc ( 0 và 1 tương đương vì chúng biểu thị cùng một biểu đồ) để có một biểu diễn duy nhất (cả 0 và 1 đều được chuẩn hóa thành một 0 duy nhất) 4. Tóm lượcBạn có thể so sánh trực tiếp các chuỗi một cách an toàn khi các ký tự của chúng đến từ Mặt phẳng đa ngôn ngữ cơ bản Tuy nhiên, nếu các chuỗi có thể chứa các ký tự kết hợp, thì sẽ an toàn hơn nếu chuẩn hóa các chuỗi được so sánh thành cùng một dạng bằng cách sử dụng hàm 5. Sau đó thực hiện so sánh trên các chuỗi chuẩn hóa Thích bài viết?đề xuất cải tiến Bài đăng chất lượng vào hộp thư đến của bạnTôi thường xuyên xuất bản bài viết có chứa
Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn Đặt muaTham gia cùng 6930 người đăng ký khác Giới thiệu về Dmitri PavlutinNhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm (nhưng không giới hạn) uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉 Chúng ta có thể sử dụng == để so sánh các chuỗi trong JavaScript không?Trong JavaScript, các chuỗi có thể được so sánh dựa trên thứ tự “giá trị”, “kiểu hoa chữ thường”, “độ dài” hoặc “bảng chữ cái” của chúng. Để so sánh các chuỗi dựa trên giá trị và kiểu chữ của chúng, hãy sử dụng Toán tử đẳng thức nghiêm ngặt (===) .
Bạn có thể sử dụng toán tử == với chuỗi không?“==” trả về Boolean True nếu hai chuỗi giống nhau và trả về Boolean False nếu hai chuỗi không giống nhau. “. = ” toán tử trả về Boolean True nếu hai chuỗi không giống nhau và trả về Boolean False nếu hai chuỗi giống nhau.
Có thể sử dụng === để so sánh chuỗi không?Có, === có thể so sánh hai chuỗi , cho kết quả đúng hoặc sai. Các ví dụ khác mà bạn đã thấy đang nói về việc so sánh các chuỗi khi sắp xếp danh sách của chúng.
== nghĩa là gì khi so sánh các chuỗi?Toán tử ==
. Nếu hai chuỗi được so sánh với == đề cập đến cùng một bộ nhớ chuỗi, giá trị trả về là đúng; . an operator that returns true if the contents being compared refer to the same memory or false if they don't. If two strings compared with == refer to the same string memory, the return value is true; if not, it is false. |