Bạn có nên luôn sử dụng ba bằng JavaScript không?

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É

CARL

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

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à

  • 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 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ểu
  • 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 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ánh

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.
    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 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ạ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.
    
    9 trong khi
    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 là
    0 === false // false
    21. Nhưng vì 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.
    
    5 thực hiện kiểu ép buộc nên kết quả là true
  • 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?

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 // false
61 hoặc
0 === false // false
62 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 Javascript

Nó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 đẳng

  • 0 === 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 đẳng
  • 0 === false // false
    67. Kiểm tra cả loại và giá trị cho hai biến được so sánh

0 === false // false
2

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 // false
6

Ở đâ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ác

ECMAScript 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ị

  • 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.
    
    77

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ẫ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.
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ụ

Tôi có nên luôn sử dụng === trong JavaScript không?

Lời khuyên dành cho những người mới bắt đầu sử dụng JavaScript là hãy quên hoàn toàn == và luôn sử dụng ===. Hóa ra quy tắc đó luôn đúng .

Tôi có nên sử dụng gấp đôi hoặc gấp ba bằng JavaScript không?

Dấu bằng kép [ == ] chỉ kiểm tra giá trị bằng nhau . Nó vốn đã ép buộc kiểu. Nghĩa là trước khi kiểm tra giá trị nó sẽ chuyển đổi kiểu của các biến sao cho khớp với nhau. Mặt khác, Triple Equals [ === ] không thực hiện ép kiểu.

Tôi có nên sử dụng == hoặc === trong TypeScript không?

Sử dụng === ở mọi nơi bạn muốn trong JavaScript . Điều này có lợi thế là tránh được những cạm bẫy phổ biến đối với == và không yêu cầu bạn phải duy trì một phương thức bổ sung. Đầu ra của trình biên dịch TypeScript sẽ gần với JavaScript thành ngữ.

Tại sao bạn lại sử dụng === thay vì ==?

== Toán tử. Toán tử này được sử dụng để kiểm tra các giá trị đã cho có bằng nhau hay không . Nếu đúng thì trả về true, ngược lại trả về false. === Nhà điều hành. Toán tử này dùng để kiểm tra các giá trị đã cho và kiểu dữ liệu của nó có bằng nhau hay không. Nếu đúng thì trả về true, ngược lại trả về false.

Chủ Đề