Bằng trong JavaScript

Toán tử đẳng thức trong javascript được sử dụng để so sánh xem hai giá trị có bằng nhau không. Việc so sánh được thực hiện bởi các toán tử == và === trong javascript. 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

Phạm vi

  • Trong bài viết này, chúng ta sẽ thảo luận về các toán tử Đẳng thức và bất đẳng thức trong javascript đó là toán tử đẳng thức lỏng lẻo [==] và toán tử đẳng thức nghiêm ngặt [===]
  • Chúng ta cũng sẽ tìm hiểu sự khác biệt giữa toán tử == và === trong javascript

Giới thiệu

Trong cuộc sống hàng ngày, chúng ta gặp nhiều tình huống cần so sánh hai sự vật. Ví dụ: hãy tưởng tượng đăng nhập vào Instagram của bạn. Khi truy cập trang web, bạn sẽ thấy một trang đăng nhập yêu cầu tên người dùng và mật khẩu của bạn. Sau khi bạn gửi thông tin chi tiết, trang web sẽ xem qua cơ sở dữ liệu của nó và so sánh thông tin chi tiết được cung cấp với thông tin chi tiết có sẵn. Nếu các chi tiết phù hợp, nó cho phép bạn đăng nhập;

Đây là một trong nhiều trường hợp so sánh hai đối tượng và hành động tiếp theo được quyết định dựa trên kết quả

Trong Javascript để so sánh 2 giá trị ta sử dụng toán tử so sánh. Tồn tại một trường hợp so sánh đặc biệt trong đó hai giá trị được so sánh và quyết định xem các giá trị đó có bằng nhau [hoặc không bằng nhau]. Trong trường hợp đó, chúng ta có thể sử dụng hai toán tử sau trong javascript

Ghi chú. Để kiểm tra xem hai giá trị có bằng nhau hay không, chúng ta thay dấu bằng [ =] đầu tiên bằng dấu chấm than [. ] dấu. Như vậy các. = và. Các toán tử == tương ứng được sử dụng để kiểm tra sự bất đẳng thức của hai giá trị

Trước khi tìm hiểu về Sự khác biệt giữa == và === trong Javascript, hãy xem == và. toán tử == trong javascript

== là gì và. = bằng JavaScript?

== và. = toán tử trong javascript được sử dụng để so sánh hai giá trị. Toán tử == kiểm tra xem hai giá trị có bằng nhau không. Các. = toán tử kiểm tra nếu hai giá trị không bằng nhau. Nó còn được gọi là toán tử đẳng thức lỏng lẻo vì nó kiểm tra đẳng thức trừu tượng, i. e. , nó có xu hướng chuyển đổi kiểu dữ liệu của toán hạng để thực hiện phép so sánh khi hai toán hạng không cùng kiểu dữ liệu

cú pháp

vì sự bình đẳng

cho sự bất bình đẳng

Trong đó x và y là toán hạng và phần ở giữa dành cho toán tử. Trong trường hợp so sánh đẳng thức, chúng tôi sử dụng toán tử == và trong trường hợp so sánh bất đẳng thức, chúng tôi sử dụng. = toán tử

loại trả lại. boolean

Nó trả về true hoặc false

Toán tử == trả về true nếu cả hai toán hạng thuộc cùng kiểu dữ liệu và có cùng giá trị hoặc nếu cả hai thuộc kiểu dữ liệu khác nhau, nhưng một trong hai toán hạng có thể được chuyển đổi thành kiểu dữ liệu của toán hạng kia và có cùng giá trị. Nếu cả hai toán hạng có giá trị khác nhau, thì nó trả về false

Các. Toán tử = trả về true nếu cả hai toán hạng có cùng kiểu dữ liệu và các giá trị khác nhau hoặc nếu cả hai có kiểu dữ liệu khác nhau và không toán hạng nào có thể được so sánh với kiểu của toán hạng kia. Nó trả về false nếu cả hai toán hạng có cùng kiểu dữ liệu và có cùng giá trị hoặc nếu cả hai đều có kiểu dữ liệu khác nhau, nhưng một trong hai toán hạng có thể được chuyển đổi thành kiểu dữ liệu của toán hạng kia và có cùng giá trị

Ghi chú. == hoặc. = toán tử thực hiện chuyển đổi kiểu của các phần tử trước khi so sánh chúng

Chuyển đổi kiểu là gì?

== và. = toán tử so sánh lỏng lẻo hai toán hạng, i. e. , trong khi so sánh hai toán hạng, nếu cả hai toán hạng không cùng kiểu dữ liệu, thì toán tử có xu hướng chuyển một trong hai toán hạng thành kiểu của toán hạng khác rồi so sánh giá trị của chúng

Đây là một trong những khác biệt quan trọng nhất giữa == và === trong Javascript

Ví dụ

Nếu chúng ta sắp so sánh hai giá trị, một chuỗi và một số khác, thì nó sẽ chuyển đổi giá trị chuỗi thành kiểu số và sau đó so sánh các giá trị

let a = 10;
let b = '10';

console.log[a == b];
//output: true

Trong ví dụ trên, b được toán tử chuyển đổi thành kiểu số và sau đó được so sánh với a. Vì giá trị số của cả a và b đều giống nhau nên kết quả là true

Hành vi của == và. = toán tử khi cả hai toán hạng cùng loại

Khi cả hai toán hạng được so sánh cùng loại, thì == và. = các nhà khai thác hành xử theo cách sau

  • Nếu cả hai đều thuộc kiểu dữ liệu số, thì toán tử == sẽ trả về true nếu cả hai đều giữ cùng một giá trị; . Các. = toán tử sẽ làm ngược lại

    Ví dụ

    let a = 10;
    let b = 10;
    let c = -10;
    
    console.log[a==b];
    //output: true
    
    console.log[a==c];
    //output: false
    
    console.log[b!=c];
    //output: true
    
    console.log[a!=b];
    //output: false
    

Trong ví dụ trên, đầu ra đầu tiên là đúng vì giá trị của a và b giống nhau và giá trị thứ hai là sai vì a và c khác dấu. Tương tự, đầu ra thứ ba đúng vì b và c không giống nhau và đầu ra thứ tư đúng vì a và b giống nhau

  • Nếu một số được so sánh với NaN, nó vẫn sẽ xuất ra giá trị sai cho toán tử ==

  • Nếu cả hai toán hạng đều thuộc loại chuỗi, thì toán tử == sẽ chỉ trả về true nếu mỗi phần tử của toán hạng thứ nhất khớp với từng phần tử của toán hạng thứ hai. Các. = toán tử sẽ làm ngược lại

Ví dụ


    let str1 = 'Javascript';
    let str2 = 'Javascript';
    let str3 = 'JavaScript';

    console.log[str1 == str2];
    //output: true

    console.log[str1 == str3];
    //output: false

    console.log[str1 != str3];
    // output: true
    

Trong ví dụ trên, đầu ra đầu tiên là đúng vì str1 và str2 hoàn toàn giống nhau, nhưng đầu ra thứ hai là sai vì str1 và str3 không hoàn toàn giống nhau. Đầu ra thứ ba là đúng vì str1 và str3 không giống nhau

Do đó, chúng ta có thể kết luận rằng so sánh cũng phân biệt chữ hoa chữ thường

  • Nếu cả hai toán hạng đều thuộc kiểu boolean, thì toán tử == sẽ chỉ trả về true nếu cả hai toán hạng đều đúng, nếu không, nó sẽ trả về false. Các. = toán tử sẽ làm ngược lại

Ví dụ

    bool a = false;
    bool b = true;
    bool c = true;
    bool d = false;

    console.log[b == c];
    //output: true

    console.log[b == a];
    //output: false

    console.log[a == d];
    //output: true

    console.log[b != d];
    //output: true

    console.log[b != c];
    //output: false

Hành vi của == và. = toán tử khi cả hai toán hạng không cùng loại

Khi loại toán hạng không giống nhau, == và. = toán tử sử dụng thuật toán so sánh đẳng thức trừu tượng để so sánh hai toán hạng. Thuật toán này nới lỏng việc kiểm tra và cố gắng sửa đổi các toán hạng thành cùng loại trước khi thực hiện bất kỳ thao tác nào

Sau đây là những điểm nổi bật về hành vi của == và. = khi loại toán hạng không giống nhau

  • Nếu chúng ta đang so sánh chuỗi và số, thì chuỗi được chuyển thành số trước khi so sánh
  • Nếu chúng ta đang so sánh boolean và số [0 hoặc 1], thì nó coi 0 là sai và 1 là đúng
  • Nếu chúng ta đang so sánh hai đối tượng, thì toán tử sẽ kiểm tra xem cả hai có tham chiếu đến cùng một đối tượng hay không. Nếu có, thì toán tử == sẽ trả về giá trị true và. = sẽ trả về false, ngược lại == sẽ trả về false, và. = sẽ trả về đúng
  • Trong trường hợp chúng ta đang so sánh null và undefined, thì toán tử == sẽ trả về true, và. = toán tử sẽ trả về false

ví dụ

ví dụ 1. so sánh chuỗi và số

10 == '10'    //true
10 == '99'    //false
10 != '99'    //true
10 != '10'    //true

Giải trình

Trong ví dụ này, toán hạng đầu tiên thuộc kiểu số và toán hạng thứ hai thuộc kiểu chuỗi. Toán tử == thực hiện chuyển đổi kiểu chuỗi thành số

Đầu ra đầu tiên là đúng khi 10 và 10 bằng nhau, do đó đầu ra đúng cho toán tử ==, đầu ra thứ hai là sai vì 10 và 99 không bằng nhau

Đầu ra thứ ba là đúng vì 10 và 99 không bằng nhau, do đó đầu ra là đúng với. = toán tử, đầu ra thứ tư là sai vì 10 và 10 bằng nhau

ví dụ 2. so sánh boolean và số

true == 1    //true
true == 0    //false
false != 1   //true
false != 0   //false

Giải trình

Trong ví dụ này, toán hạng đầu tiên thuộc loại boolean và toán hạng thứ hai thuộc loại số [0 hoặc 1]. Toán tử == thực hiện chuyển đổi kiểu số thành boolean

Đầu ra đầu tiên đúng là đúng và 1 bằng nhau [vì 1 được coi là đúng và 0 được coi là sai], do đó đầu ra là đúng cho toán tử ==, đầu ra thứ hai là sai là đúng và 0 không bằng

ví dụ 3. so sánh null và không xác định

let a = null;
let b;

console.log[a == b];
//output: true

Giải trình

Kết quả là true đối với toán tử ==, so sánh null và undefined là true

Ví dụ 4. so sánh các đối tượng

let car1 = {
    name: "Maruti"
}

let car2 = {
    name: "Maruti"
}

console.log[car1 == car1];
//output: true

console.log[car1 == car2];
//output: false

console.log[car1 != car1];
//output: false

console.log[car1 != car2];
//output: true

Giải trình

Trong ví dụ trước, đầu ra đầu tiên là đúng vì car1 và car1 đề cập đến cùng một phiên bản trong khi đầu ra thứ hai là sai vì car1 và car2 đề cập đến các phiên bản khác nhau

Ghi chú. Không bao giờ so sánh các đối tượng với toán tử ==

Điều này chỉ hoạt động nếu đó là cùng một đối tượng. Các đối tượng khác nhau có cùng giá trị không bằng nhau. Do đó, toán tử == trả về false khi chúng ta so sánh hai đối tượng khác nhau có cùng giá trị

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

Toán tử === được gọi là toán tử đẳng thức nghiêm ngặt [và. == được gọi là toán tử bất đẳng thức nghiêm ngặt]. Các toán tử === tuân theo thuật toán so sánh bình đẳng nghiêm ngặt, i. e. , nó không thực hiện chuyển đổi kiểu của toán hạng trước khi so sánh giá trị của chúng và trả về false ngay cả khi kiểu dữ liệu của toán hạng không giống nhau

cú pháp

vì sự bình đẳng

cho sự bất bình đẳng

Trong đó x và y là toán hạng và phần ở giữa dành cho toán tử. Trong trường hợp so sánh đẳng thức, chúng tôi sử dụng toán tử === và trong trường hợp so sánh bất đẳng thức, chúng tôi sử dụng. == toán tử

loại trả lại. boolean

Nó trả về true hoặc false

Toán tử === so sánh các toán hạng và trả về true nếu cả hai toán hạng có cùng kiểu dữ liệu và có một số giá trị, nếu không, nó trả về false

Các. Toán tử == so sánh các toán hạng và trả về true nếu cả hai toán hạng có kiểu dữ liệu khác nhau hoặc cùng kiểu dữ liệu nhưng có các giá trị khác nhau. Nếu cả hai toán hạng có cùng kiểu dữ liệu và có cùng giá trị, thì nó trả về false

Ghi chú. Không giống như toán tử ==, === không chuyển đổi kiểu

Ví dụ

________số 8

Ở đây đầu ra đầu tiên là sai vì a là kiểu số trong khi b là kiểu chuỗi, đầu ra thứ hai là đúng vì cả a và c đều có cùng kiểu dữ liệu và giá trị

=== và. Các toán tử == tuân theo thuật toán so sánh đẳng thức nghiêm ngặt để so sánh hai toán hạng

Sau đây là một số điểm nổi bật của thuật toán so sánh bình đẳng nghiêm ngặt

  • Nếu các toán hạng mà chúng ta đang so sánh có kiểu dữ liệu khác nhau, thì nó trả về false
  • Nếu bất kỳ một trong hai toán hạng mà chúng ta đang so sánh là NaN, thì nó sẽ trả về false
  • Nếu toán hạng mà chúng ta đang so sánh là null hoặc không xác định, thì nó sẽ trả về true
  • Nếu các toán hạng mà chúng ta đang so sánh là các đối tượng, thì nó sẽ trả về true nếu cả hai đều tham chiếu đến cùng một đối tượng, ngược lại nó sẽ trả về false

ví dụ

ví dụ 1. Khi cả hai toán hạng có kiểu dữ liệu khác nhau

34 === '34'    //false
34 !== '34'    //true

Giải trình

Ở đây, toán hạng đầu tiên thuộc kiểu dữ liệu số và toán hạng thứ hai thuộc kiểu dữ liệu chuỗi, vì vậy toán tử === trả về false và. toán tử == trả về true

ví dụ 2. Khi một trong hai toán hạng là NaN

let a = 10;
let b = 10;
let c = -10;

console.log[a==b];
//output: true

console.log[a==c];
//output: false

console.log[b!=c];
//output: true

console.log[a!=b];
//output: false
0

Giải trình

Vì toán hạng đầu tiên có dạng NaN nên toán tử === trả về false và. toán tử == trả về true

ví dụ 3. Khi cả hai toán hạng là null hoặc không xác định

let a = 10;
let b = 10;
let c = -10;

console.log[a==b];
//output: true

console.log[a==c];
//output: false

console.log[b!=c];
//output: true

console.log[a!=b];
//output: false
1

Giải trình

Ở đây, hai đầu ra so sánh đầu tiên đúng vì cả hai toán hạng đều cùng loại và có cùng giá trị, nhưng đầu ra cuối cùng là sai vì một toán hạng là null và toán hạng kia không được xác định

Ví dụ 4. Khi cả hai toán hạng là đối tượng

let a = 10;
let b = 10;
let c = -10;

console.log[a==b];
//output: true

console.log[a==c];
//output: false

console.log[b!=c];
//output: true

console.log[a!=b];
//output: false
2

Giải trình

Trong ví dụ này, đầu ra đầu tiên là đúng vì car1 và car1 đề cập đến cùng một phiên bản trong khi đầu ra thứ hai là sai vì car1 và car2 đề cập đến các phiên bản khác nhau

Công dụng của toán hạng == và === trong JavaScript

Giữa sự khác biệt giữa == và === trong Javascript, cả hai toán tử == và === đều được sử dụng để so sánh các toán hạng

Toán hạng == và === được dùng để so sánh xem hai giá trị có bằng nhau không

Toán hạng == so sánh lỏng lẻo hai giá trị, do đó nó có thể được sử dụng trong trường hợp kiểu dữ liệu của toán hạng không quan trọng. cho e. g. , hãy tưởng tượng một mục nhập biểu mẫu mà bạn đã hỏi học sinh điểm danh của họ. Có thể một số sẽ nhập nó ở dạng chuỗi và một số ở dạng số. Trong những trường hợp như vậy, chúng ta có thể sử dụng toán tử == để xác minh dữ liệu mà không cần cơ sở dữ liệu

Toán hạng === so sánh nghiêm ngặt hai giá trị, do đó nó được sử dụng ở những nơi mà kiểu dữ liệu của toán hạng là quan trọng. Hãy tưởng tượng một cuộc thi mã hóa trực tuyến, trong đó câu trả lời là một số ở định dạng chuỗi. Trong trường hợp đó, chúng tôi sẽ sử dụng toán tử === để so sánh và xác thực các câu trả lời

So sánh và khác biệt giữa == và === trong Javascript

S. no=====1 So sánh hai toán hạng So sánh hai toán hạng 2 trả về true nếu toán hạng có cùng kiểu dữ liệu và cùng giá trị, trả về false nếu các giá trị khác nhau. chỉ trả về true nếu toán hạng có cùng kiểu dữ liệu và cùng giá trị, nếu không thì trả về false3Trong trường hợp cả hai toán hạng có kiểu dữ liệu khác nhau, nó thực hiện chuyển đổi kiểu của một toán hạng để làm cho kiểu dữ liệu của toán hạng giống nhau. Trường hợp cả hai toán hạng có kiểu dữ liệu khác nhau thì không thực hiện chuyển đổi kiểu toán hạng. 4Còn được gọi là đẳng thức lỏng lẻo Còn được gọi là đẳng thức nghiêm ngặt 5Tuân theo thuật toán so sánh đẳng thức trừu tượng Tuân theo thuật toán so sánh đẳng thức nghiêm ngặt

ví dụ

  • Sau đây là một số ví dụ về hành vi của toán tử ==

let a = 10;
let b = 10;
let c = -10;

console.log[a==b];
//output: true

console.log[a==c];
//output: false

console.log[b!=c];
//output: true

console.log[a!=b];
//output: false
3
  • Sau đây là một số ví dụ về hành vi của toán tử ===

let a = 10;
let b = 10;
let c = -10;

console.log[a==b];
//output: true

console.log[a==c];
//output: false

console.log[b!=c];
//output: true

console.log[a!=b];
//output: false
4

Phần kết luận

  • Các toán tử == và === được sử dụng để kiểm tra sự bằng nhau của hai toán hạng

  • Các. = và. Toán tử == được dùng để kiểm tra sự bất đẳng thức của hai toán hạng

  • == và. = là các toán tử đẳng thức lỏng lẻo, i. e. , chúng thực hiện chuyển đổi kiểu trên các toán hạng trước khi so sánh

  • === và. == là các toán tử đẳng thức nghiêm ngặt, i. e. , chúng so sánh các toán hạng mà không có bất kỳ chuyển đổi kiểu nào và trả về false [trong trường hợp toán tử ===] ngay cả khi các kiểu dữ liệu không giống nhau

  • == và. Các toán tử = được sử dụng trong các trường hợp mà kiểu dữ liệu của toán hạng không phải là yếu tố chính để so sánh và nó có thể được xoắn để cho phép so sánh hai toán hạng. e. g. , Toán tử == có thể được sử dụng để xác minh mã số nhập học của học sinh [được lấy thông qua một biểu mẫu và có thể ở dạng chuỗi hoặc số] với các số nhập học được lưu trữ trong cơ sở dữ liệu [ở loại dữ liệu số]

  • === và. Các toán tử == được sử dụng trong các tình huống mà kiểu dữ liệu của toán hạng là quan trọng để so sánh và không thể thay đổi nó để thực hiện so sánh. e. g. , Trong một cuộc thi mã hóa, câu trả lời có thể ở dạng số hoặc chuỗi, nhưng theo quy định, điểm sẽ chỉ được trao cho câu trả lời dạng chuỗi. Trong trường hợp này, chúng tôi sẽ sử dụng toán tử === để so sánh câu trả lời của người dùng với câu trả lời được lưu trữ trong cơ sở dữ liệu của chúng tôi

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

    === — bình đẳng nghiêm ngặt [ba bằng] == — bình đẳng lỏng [bằng kép]

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

    = Vs == VS === trong JavaScript . == trong JavaScript được dùng để so sánh hai biến, nhưng nó bỏ qua kiểu dữ liệu của biến . === được dùng để so sánh hai biến, nhưng toán tử này cũng kiểm tra kiểu dữ liệu và so sánh hai giá trị.

    === B trong JavaScript là gì?

    a === b trả về true nếu a và b có cùng giá trị và cùng loại . Đối với các loại tham chiếu . a === b trả về true nếu a và b tham chiếu chính xác cùng một đối tượng. Đối với chuỗi. a === b trả về true nếu a và b đều là chuỗi và chứa các ký tự giống hệt nhau.

    == so với === khác nhau như thế nào?

    Sự khác biệt giữa == và === là. == chuyển đổi các giá trị của 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. === 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.

Chủ Đề