Dấu ba bằng trong JavaScript có nghĩa là “bình đẳng không ép buộc kiểu”. Điều đó có nghĩa là, cả loại và giá trị phải bằng nhau
Lấy ví dụ kịch bản trong đó 0 là sai
So sánh 2 dấu bằng nhau thì mệnh đề sau đúng. Điều này là do toán tử đẳng thức chuyển đổi nếu chúng không cùng loại
0 == false // true
Nếu chúng ta so sánh 0 và false với ===, chúng ta sẽ trả về false. Vì 0 và false là các loại khác nhau nên chúng không bằng nhau trong trường hợp này. Các toán tử đẳng thức nghiêm ngặt thực hiện so sánh đẳng thức trên các toán hạng cùng loại
0 === false // false
Bạn có thể đọc thêm về toán tử so sánh tại Mozilla. https. // nhà phát triển. mozilla. org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators. Các toán tử bình đẳng nghiêm ngặt sử dụng
CẢM ƠN VÌ ĐÃ ĐỌC. TRƯỚC KHI BẠN RỜI, TÔI CẦN SỰ GIÚP ĐỠ CỦA BẠN
TÔI ĐANG DÀNH NHIỀU THỜI GIAN TRONG NHỮNG NGÀY NAY ĐỂ TẠO CÁC VIDEO YOUTUBE ĐỂ GIÚP MỌI NGƯỜI TÌM HIỂU NỀN TẢNG MICROSOFT POWER
NẾU BẠN MUỐN XEM CÁCH TÔI XÂY DỰNG ỨNG DỤNG HOẶC TÌM THỨ GÌ HỮU ÍCH KHI ĐỌC BLOG CỦA TÔI, TÔI THỰC SỰ CẢM ƠN BẠN ĐÃ ĐĂNG KÝ KÊNH YOUTUBE CỦA TÔI
CẢM ƠN VÀ HÃY CÙNG HỌC HỎI NHÉ
https. //www. youtube. com/carldesouza
GIỚI THIỆU VỀ CARL DE SOUZA
Carl de Souza là nhà phát triển và kiến trúc sư tập trung vào Microsoft Dynamics 365, Power BI, Azure và AI
Trong ví dụ trên, cả hai toán tử đều trả về cùng một câu trả lời i. e.
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
4. Vậy sự khác biệt là gì?Sự khác biệt giữa var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5 và var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
Sự khác biệt giữa
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5 và var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0 là
5 chuyển đổi các giá trị biến thành cùng loại trước khi thực hiện so sánh. Điều này được gọi là ép buộc kiểuvar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
0 không thực hiện bất kỳ chuyển đổi loại nào [ép buộc] và chỉ trả về true nếu cả giá trị và loại giống hệt nhau đối với hai biến được so sánhvar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
Hãy xem một ví dụ khác
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
- dòng 7.
5 trả về true vì cả hai biến,var one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
6 vàvar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
7 đều chứa cùng một giá trị mặc dù chúng có kiểu khác nhau.var one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
6 thuộc loạivar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
9 trong khivar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
7 làvar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
0 === false // false
21. Nhưng vì toán tử
5 thực hiện kiểu ép buộc nên kết quả là truevar one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
- dòng 8.
0 === false // false
23 trả về false vì các loại biến khác nhau
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0 có nhanh hơn var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5 không?
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
Về lý thuyết, khi so sánh các biến có cùng loại, hiệu suất của cả hai toán tử phải giống nhau vì chúng sử dụng cùng một thuật toán. Khi các loại khác nhau, toán tử ba bằng [
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0] sẽ hoạt động tốt hơn gấp đôi bằng [var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5] vì nó không phải thực hiện thêm bước ép buộc kiểu. Nhưng phải không? - Kiểm tra jsperf 2
Nếu bạn nhìn vào biểu đồ ở cuối bài kiểm tra, bạn sẽ thấy hiệu suất khác nhau giữa các triển khai trình duyệt khác nhau và mức tăng hiệu suất hầu như không đáng kể
Nhưng nếu bạn nghĩ về nó, hiệu suất hoàn toàn không liên quan và không nên đóng vai trò quyết định khi nào sử dụng toán tử này thay vì toán tử kia. Hoặc bạn cần kiểu ép buộc hoặc bạn không. Nếu bạn không cần nó, đừng sử dụng toán tử bằng kép [
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5] vì bạn có thể nhận được kết quả không mong muốn. Hầu hết những kẻ nói dối sẽ phàn nàn nếu bạn sử dụng var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5. Để tiếp tục khiến bạn sợ hãi khỏi var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5. nó khá khó hiểu và có những quy tắc kỳ lạ. Ví dụ: 0 === false // false61 hoặc
0 === false // false62 sẽ trả về
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
4. Để biết thêm các đặc thù, hãy xem Bảng bình đẳng JavascriptNói tóm lại, hãy luôn sử dụng
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0 ở mọi nơi trừ khi bạn cần ép buộc kiểu [trong trường hợp đó, hãy sử dụng var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5. ]Toán tử bất đẳng thức. 0 === false // false
66 và 0 === false // false
67
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5 và var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0 có các đối tác của chúng khi kiểm tra sự bất bình đẳng0 === false // false
66. Chuyển đổi giá trị nếu các biến là các loại khác nhau trước khi kiểm tra sự bất bình đẳng0 === false // false
67. Kiểm tra cả loại và giá trị cho hai biến được so sánh
0 === false // false2
Toán tử và đối tượng bình đẳng [và các loại tham chiếu khác]
Cho đến nay, chúng ta đã khám phá các toán tử đẳng thức hoặc bất đẳng thức bằng cách sử dụng các kiểu nguyên thủy. Còn các loại tham chiếu như Mảng hoặc Đối tượng thì sao. Nếu chúng ta tạo hai mảng có nội dung giống hệt nhau, liệu chúng ta có thể so sánh chúng bằng cách sử dụng toán tử đẳng thức giống như cách chúng ta làm đối với nguyên hàm không? . Hãy xem xét một ví dụ
0 === false // false6
Ở đây, cả
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
5 và var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0 đều trả về cùng một câu trả lời. var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
74. Điều đang xảy ra ở đây là cả var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
75 và var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
76 đều trỏ đến các đối tượng khác nhau trong bộ nhớ. Mặc dù nội dung mảng giống nhau, nhưng về cơ bản chúng có các giá trị khác nhau. Áp dụng tương tự cho các đối tượng và các loại tham chiếu khácECMAScript 6. Vật. Là[]
Tôi đã nói ở đầu bài viết là một số tùy chọn để kiểm tra tính bằng nhau trong Javascript. Điều đó không còn đúng nữa. ECMAScript 6 đã giới thiệu một phương pháp thứ ba để so sánh các giá trị
77var one = 1; var one_again = 1; var one_string = "1"; // note: this is string console.log[one == one_again]; // true console.log[one === one_again]; // true console.log[one == one_string]; // true. See below for explanation. console.log[one === one_string]; // false. See below for explanation.
Toán tử ba bằng [
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0] là cách được đề xuất để so sánh giá trị, nhưng nó không hoàn hảo. Đây là một vài ví dụ mà hành vi của nó gây nhầm lẫnvar one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
7Để so sánh bớt khó hiểu hơn, đã giới thiệu một phương pháp mới. Vật. Là[]. Nó nhận hai đối số và trả về
var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
4 nếu cả giá trị và kiểu đều bằng nhau. Về cơ bản, nó giống với toán tử var one = 1;
var one_again = 1;
var one_string = "1"; // note: this is string
console.log[one == one_again]; // true
console.log[one === one_again]; // true
console.log[one == one_string]; // true. See below for explanation.
console.log[one === one_string]; // false. See below for explanation.
0, nhưng không có những điểm kỳ quặc. Hãy xem xét một số ví dụ