Cách kiểm tra xem hai biến có bằng nhau trong JavaScript không

Python đi kèm với hai toán tử có thể được sử dụng để kiểm tra sự bằng nhau, đó là

>>> a == b
True
0 [khá phổ biến trong hầu hết các ngôn ngữ lập trình hiện đại] và
>>> a == b
True
1. Đôi khi có thể khó phân biệt bạn nên sử dụng cái nào trong hai cái, đặc biệt nếu bạn không quen với mô hình gõ động của Python

Trong bài viết hôm nay, chúng ta sẽ thảo luận về mục đích của cả toán tử

>>> a == b
True
0 và
>>> a == b
True
1 trong Python khi so sánh hai biến hoặc đối tượng. Ngoài ra, chúng tôi sẽ xem qua một ví dụ để giới thiệu khi nào nên sử dụng cái này hơn cái kia

Đối tượng, biến và tham chiếu trong Python

Mỗi khi chúng ta gán giá trị đối tượng cho một biến, các hành động sau được thực hiện

  1. Đối tượng chứa giá trị được tạo và lưu trữ trong bộ nhớ
  2. Tên biến được tạo [nếu nó chưa tồn tại]
  3. Tham chiếu đến vị trí bộ nhớ chứa đối tượng đã tạo được gán cho biến

Các biến Python không thực sự giữ các đối tượng. Thay vào đó, chúng thực sự giữ các tham chiếu đến các đối tượng. Nói cách khác, các biến trỏ đến các vị trí trong bộ nhớ đã được cấp phát để lưu trữ các đối tượng tương ứng.

Đôi khi chúng ta có thể cần kiểm tra xem hai đối tượng có cùng giá trị hay không trong khi trong những trường hợp khác, chúng ta có thể phải kiểm tra xem các đối tượng có giống hệt nhau không. Trong phần sau, chúng ta sẽ khám phá cách đạt được cả hai

Sự khác biệt giữa “là” và “==”

Bây giờ nếu bạn muốn thực hiện kiểm tra bằng nhau giữa hai biến, rất có thể bạn thực sự muốn kiểm tra xem hai biến có trỏ đến các đối tượng có giá trị bằng nhau không. Trong những trường hợp khác, bạn cũng có thể phải kiểm tra xem hai biến có trỏ đến cùng một đối tượng hay không

  • Toán tử
    >>> a == b
    True
    0 được sử dụng để kiểm tra xem hai biến tham chiếu đối tượng có cùng giá trị hay không
  • Toán tử
    >>> a == b
    True
    1 được sử dụng để kiểm tra xem hai biến có trỏ đến cùng một đối tượng trong bộ nhớ hay không

Bây giờ, giả sử chúng ta có hai danh sách như hình bên dưới

a = [1, 2, 3]
b = [1, 2, 3]
  • >>> a == b
    True
    0 sẽ trả về
    >>> a == b
    True
    5 vì
    >>> a == b
    True
    6 và
    >>> a == b
    True
    7 trỏ đến các đối tượng có giá trị bằng nhau
>>> a == b
True
  • Mặt khác,
    >>> a == b
    True
    1 sẽ trả về
    >>> a == b
    True
    9 vì
    >>> a == b
    True
    6 và
    >>> a == b
    True
    7 không trỏ đến cùng một đối tượng. Mặc dù cả hai đối tượng đều có giá trị bằng nhau, nhưng chúng không giống nhau theo nghĩa là Python lưu trữ chúng ở các vị trí khác nhau trong bộ nhớ
________số 8

Vị trí bộ nhớ của cả

>>> a == b
True
6 và
>>> a == b
True
7 đều khác nhau

>>> a == b
True
1

Bây giờ nếu chúng ta gán

>>> a == b
True
6 cho biến
>>> a == b
True
7, thì
>>> a == b
True
1 sẽ trả về
>>> a == b
True
5 vì cả hai biến đều trỏ đến cùng một đối tượng trong bộ nhớ

>>> a == b
True
5

Và địa chỉ bộ nhớ bây giờ sẽ giống hệt nhau

>>> a == b
True
6

Lưu ý quan trọng

Toán tử

>>> a == b
True
1 có thể trả về
>>> a == b
True
5 nếu được sử dụng với các biến trỏ đến số nguyên nhỏ ngay cả khi hai biến được khởi tạo độc lập

>>> a == b
True
8

Đây là một chi tiết triển khai của Python lưu trữ các giá trị số nguyên nhỏ hoặc chuỗi ký tự cho mục đích hiệu suất

Lưu ý rằng đối với các chuỗi hoặc giá trị số nguyên lớn hơn, toán tử

>>> a == b
True
1 sẽ hoạt động như bình thường

>>> a == b
True
9

Suy nghĩ cuối cùng

Trong bài viết hôm nay, chúng ta đã thảo luận về cách kiểm tra sự bằng nhau của đối tượng trong Python. Chúng tôi đã thảo luận ngắn gọn về cách các đối tượng, tham chiếu và giá trị được xử lý trong Python. Ngoài ra, chúng tôi đã khám phá sự khác biệt cơ bản giữa các toán tử

>>> a == b
True
1 và
>>> a == b
True
0. Cái trước có thể được sử dụng để kiểm tra xem hai biến có giữ tham chiếu đến cùng một đối tượng được lưu trữ trong một vị trí bộ nhớ cụ thể hay không. Mặt khác,
>>> a == b
True
0 được sử dụng để kiểm tra xem hai biến trỏ đến tham chiếu đối tượng có cùng giá trị hay không

Ở phần đầu của bài viết, chúng ta đã thảo luận nhanh về cách các đối tượng, tham chiếu và giá trị được xử lý trong Python. Nếu bạn muốn tìm hiểu thêm về các khái niệm này và mô hình Dynamic Typing mà Python triển khai, hãy nhớ đọc bài viết Dynamic Typing in Python

Làm cách nào để sử dụng === trong JavaScript?

Toán tử đẳng thức nghiêm ngặt [ === ] kiểm tra xem hai toán hạng của nó có bằng nhau hay không, trả về kết quả Boolean. .
Các số phải có cùng giá trị số. +0 và -0 được coi là có cùng giá trị
Các chuỗi phải có các ký tự giống nhau theo cùng một thứ tự
Booleans phải vừa đúng hoặc vừa sai

== và === trong JavaScript là gì?

Sự khác biệt chính giữa toán tử == và === trong javascript là toán tử == thực hiện chuyển đổi kiểu của toán hạng trước khi so sánh, trong khi toán tử === so sánh các giá trị cũng như kiểu dữ liệu của toán hạng

Chủ Đề