Thuật toán bình đẳng trong JavaScript

Mar 03 2023
Trong bài viết này, chúng ta sẽ biết Thuật toán Euqlity là gì và cách chúng ta có thể sử dụng chúng trong JavaScript. Thuật toán bình đẳng là gì? Thuật toán bình đẳng là Kỹ thuật mà JavaScript sử dụng để kiểm tra xem giá trị Đầu tiên có bằng Giá trị thứ hai hay không.

Trong bài viết này, chúng ta sẽ biết Thuật toán Euqlity là gì và cách chúng ta có thể sử dụng chúng trong JavaScript.

Thuật toán bình đẳng là gì?

Thuật toán bình đẳng là Kỹ thuật mà JavaScript sử dụng để kiểm tra xem giá trị Đầu tiên có bằng Giá trị thứ hai hay không.

Vì vậy, bây giờ chúng tôi biết Thuật toán bình đẳng biết gì cho chúng tôi biết cách sử dụng chúng.

Có bốn thuật toán để kiểm tra sự bằng nhau trong JavaScript:

1. Thuật toán bình đẳng Loosley ( == )

2. Thuật toán bình đẳng nghiêm ngặt ( === )

3. Thuật toán bình đẳng giá trị giống nhau ( Object.is() )

4. Giá trị bằng không

Biết Hãy để chúng tôi nói về từng người trong số họ từng bước:

  1. Thuật toán bình đẳng lỏng lẻo ( == )
  2. console.log("1" == 1) // true
    console.log(false == 0) // true
    

Vì vậy, toán tử đẳng thức == tạo ra Kiểu ép buộc trong chúng tôi sử dụng nó và vì điều này, chúng tôi gọi nó là Toán tử bình đẳng lỏng lẻo .

2. Thuật toán bình đẳng nghiêm ngặt ( === )

Tham số Bình đẳng này hoạt động giống như tham số trước, Điểm khác biệt duy nhất là nó không thực hiện bất kỳ loại chuyển đổi nào trong các giá trị nên nó cung cấp cho bạn chính xác điều bạn muốn và do đó, bạn nên sử dụng Tham số Bình đẳng này thay vì Lỏng lẻo Tham số Bình đẳng.

Vì vậy, nếu chúng ta lặp lại ví dụ trước với tham số === thì đây sẽ là kết quả:

console.log("1" === 1) // false
console.log(false === 0) // false

console.log(1 === 1) // true
console.log(false === false) // true

Trong JavaScript cho phép bạn kiểm tra xem Giá trị đầu tiên có giống Giá trị khác hay không.

Nhưng Chờ đã…Không phải ` === ` Toán tử làm điều tương tự

Bạn có chắc không?? Trước tiên chúng ta hãy xem ví dụ sau:

console.log(NaN === NaN) // false

Nó kiểm tra xem giá trị Đầu tiên nếu nó có cùng giá trị với giá trị Thứ hai.

Vì vậy, nếu Chúng tôi lặp lại ví dụ trước với ` Object.is() `, chúng tôi sẽ nhận được Kết quả mong muốn

console.log(NaN === NaN) // false

Object.is(-0, +0) // false 
console.log(-0 === +0) //true

// ---

Object.is(NaN, NaN) // true
console.log(NaN === NaN) // false

// ---

const obj1 = {name: "Ahmed", age: 22}
const obj2 = {name: "Ahmed", age: 22}

console.log(Object.is(obj1, obj2)) // false
console.log(obj1 === obj2) // false

/* 
  In this example two methods gave the same result but there are different
  in there tichneeques:

  [1] === when compare Objects checks if the two Objects refer to the same Reference
  [2] Object.is() when compare Objects checks if the two Objects have the same values
*/

4. Thuật toán bình đẳng giá trị bằng không

Tên của thuật toán tự giải thích, thuật toán này giống với thuật toán trước ngoại trừ các giá trị +0 và -0 hoặc NaN được coi là giống nhau, Vì vậy, hãy để chúng tôi thực hiện nó:

function sameValueZero(x, y) {
  if (typeof x === "number" && typeof y === "number") {
    // x and y are equal (may be -0 and 0) or they are both NaN
    return x === y || (x !== x && y !== y);
  }
  return x === y;
}

Để tóm tắt bài báo. Bạn không nên sử dụng bình đẳng lỏng lẻo thay vì nó, bạn có thể sử dụng bình đẳng nghiêm ngặt.

Bạn có thể sử dụng các thuật toán cùng giá trị hoặc cùng giá trị bằng 0 trong trường hợp bạn cần thực hiện các tác vụ cụ thể như kiểm tra xem giá trị được chấp nhận là +0 hay -0 không…v.v.

Tôi hy vọng bạn thích bài viết này và được hưởng lợi dù chỉ 1 phần trăm. Hẹn gặp lại bạn trong bài viết tiếp theo…