Toán Tử So Sánh Trong JavaScript (P2. So Sánh Bằng)
Có thể bạn quan tâm
Hướng dẫn cách sử dụng toán tử so sánh trong JavaScript. Ở phần 2 này bạn sẽ học được các phép so sánh bằng trong JavaScript được biểu diễn thông qua 4 loại toán tử so sánh bằng trong JavaScript sau bài học này.
Toán tử so sánh bằng trong JavaScript
Toán tử so sánh bằng trong JavaScript, là các toán tử được đặt giữa 2 hạng tử và kiểm tra xem chúng bằng nhau hay là khác nhau trong JavaScript.
Để thực hiện các phép so sánh bằng trong JavaScript, chúng ta sử dụng 4 loại toán tử so sánh bằng trong JavaScript được liệt kê trong bảng dưới đây:
Toán tử | Biểu thức điều kiện | Ý nghĩa |
---|---|---|
== | x == y | x bằng y |
!= | x != y | x không bằng y |
=== | x === y | x nghiêm ngặt bằng y |
!== | x !== y | x nghiêm ngặt không bằng y |
Ngoài các toán tử so sánh bằng này, chúng ta cũng sử dụng tới 4 loại toán tử so sánh lớn nhỏ mà Kiyoshi đã giới thiệu trong bài Toán tử so sánh trong JavaScript (P1: so sánh lớn nhỏ).
Phép so sánh bằng trong JavaScript sẽ kết hợp toán tử so sánh bằng cùng với hai giá trị ở hai vế trái phải thành một biểu thức điều kiện, sau đó kiểm tra biểu thức điều kiện này là đúng hay sai và đưa ra kết quả. Kết quả của các phép so sánh trong JavaScript sẽ là kiểu boolean trong JavaScript với hai giá trị là True (đúng) hoặc False (sai), và phép toán so sánh trong JavaScript được sử dụng để cấu tạo biểu thức điều kiện được sử dụng trong câu lệnh if trong JavaScript.
Toán tử == trong JavaScript
Khi đặt toán tử == trong JavaScript giữa 2 hạng tử, nếu chúng giống nhau thì kết quả true được trả về. Nếu kiểu của 2 hạng tử khác nhau thì chúng sẽ được chuyển về cùng một kiểu dữ liẹu trước khi được so sánh. Và nếu 2 hạng tử này thuộc kiểu object trong JavaScript, nếu chúng cùng tham chiếu tới một object thì được coi là bằng nhau và kết quả true được trả về.
Và toán tử != thì sẽ có tác dụng ngược lại hoàn toàn với toán tử == trong JavaScript.
So sánh == cùng kiểu dữ liệu
Khi sử dụng toán tử ==, nếu 2 hạng tử có cùng kiểu dữ liệu thì giá trị true sẽ được trả về nếu chúng giống nhau.
console.log(10 == 10);// trueconsole.log(10 == 8);// falseconsole.log('Apple' == 'Apple');// trueconsole.log('Apple' == 'apple');// falseconsole.log(true == true);// trueconsole.log(true == false);// falseconsole.log(null == null);// trueconsole.log(undefined == undefined);// true |
Lưu ý duy nhất là khi so sánh NaN với NaN thì kết quả trả về luôn là false.
console.log(NaN == NaN);// false |
So sánh == khác kiểu dữ liệu
Khi sử dụng toán tử ==, nếu 2 hạng tử khác kiểu dữ liệu thì chúng sẽ được chuyển về cùng kiểu dữ liệu trước khi được so sánh.
Ví dụ chúng ta so sánh chuỗi với số bằng toán tử ==, chuỗi đó sẽ được chuyển về kiểu số trước khi được so sánh như sau:
console.log(10 == '10');// trueconsole.log(10 == '8');// falseconsole.log(10 == 'Apple');// false |
Tương tự thì khi chúng ta so sánh số với một object thì object đó sẽ được chuyển về kiểu số trước khi được so sánh như sau:
console.log(10 == [10]);// trueconsole.log(10 == [10, 20]);// falseconsole.log(10 == ['10']);// trueconsole.log(10 == {num:'10'});// falseconsole.log(10 == new Number(10));// true |
Lại nữa, trong JavaScript cũng có một số kiểu dữ liệu không thuộc kiểu chuỗi nhưng có thể được chuyển về dạng số như sau đây:
true 1false 0null 0undefined NaN
Do vậy, khi so sánh chúng với số trong JavaScript, kết quả phép so sánh sẽ phụ thuộc vào kết quả chuyển kiểu dữ liệu về số của chúng.
console.log(1 == true);// trueconsole.log(0 == false);// trueconsole.log(1 == false);// falseconsole.log('1' == true);// trueconsole.log('true' == true);// falseconsole.log(null == undefined);// trueconsole.log(null == 0);// falseconsole.log(null == 1);// false |
So sánh == với object trong javascript
Khi so sánh object trong javascript bằng toán tử ==, chỉ trong trường hợp chúng cùng tham chiếu đến một object thì kết quả true mới được trả về.
Ví dụ cụ thể:
let obj1 = {red:'1', blue:'2'};let obj2 = {red:'1', blue:'2'};let obj3,obj4;obj3 = obj1;obj4 = obj1;console.log(obj1 == obj2);// falseconsole.log(obj1 == obj3);// trueconsole.log(obj4 == obj3);// true |
Có thể thấy rõ mặc dù obj1 và obj2 có nội dung hoàn toàn giống nhau, nhưng khi so sánh chúng với toán từ == thì giá trị false lại được trả về. Và chỉ có các cặp obj1-objc3 và obj4-objc3 do cùng tham chiếu tới object1 nên mới bằng nhau và trả về giá trị true mà thôi.
Toán tử === trong JavaScript
Trong phép so sánh nghiêm ngặt với toán tử === trong JavaScript, nếu 2 hạng tử đem so sánh có cùng kiểu và cùng giá trị thì true sẽ được trả về. Nếu 2 hạng tử khác kiểu dữ liệu, chúng không được chuyển về cùng kiểu mà kết quả phép so sánh sẽ luôn trả về false. Và nếu đem so sánh 2 object với nhau, chỉ khi chúng cùng tham chiếu tới một object thì kết quả sẽ trả về true mà thôi.
Và toán tử !== thì sẽ có tác dụng ngược lại hoàn toàn với toán tử === trong JavaScript.
So sánh === cùng kiểu dữ liệu
Khi sử dụng toán tử ===, nếu 2 hạng tử có cùng kiểu dữ liệu thì giá trị true sẽ được trả về nếu chúng giống nhau.
console.log(10 === 10);// trueconsole.log(10 === 8);// falseconsole.log('Apple' === 'Apple');// trueconsole.log('Apple' === 'apple');// falseconsole.log(true === true);// trueconsole.log(true === false);// falseconsole.log(null === null);// trueconsole.log(undefined === undefined);// true |
Lưu ý duy nhất là khi so sánh NaN với NaN thì kết quả trả về luôn là false.
console.log(NaN === NaN);// false |
So sánh === khác kiểu dữ liệu
Khi sử dụng toán tử ===, nếu 2 hạng tử khác kiểu dữ liệu kết quả false sẽ luôn được trả về.
Ví dụ:
console.log(10 === '10');// falseconsole.log(1 === true);// falseconsole.log(0 === false);// falseconsole.log(null === undefined);// falseconsole.log(null === 0);// falseconsole.log(10 === [10]);// falseconsole.log(10 === new Number(10));// fals |
So sánh === với object trong JavaScript
Khi so sánh object trong JavaScript bằng toán tử ===, chỉ trong trường hợp chúng cùng tham chiếu đến một object thì kết quả true mới được trả về.
Ví dụ cụ thể:
let obj1 = {red:'1', blue:'2'};let obj2 = {red:'1', blue:'2'};let obj3,obj4;obj3 = obj1;obj4 = obj1;console.log(obj1 === obj2);// falseconsole.log(obj1 === obj3);// trueconsole.log(obj4 === obj3);// true |
Có thể thấy rõ mặc dù obj1 và obj2 có nội dung hoàn toàn giống nhau, nhưng khi so sánh chúng với toán từ === thì giá trị false lại được trả về. Và chỉ có các cặp obj1-objc3 và obj4-objc3 do cùng tham chiếu tới object1 nên mới bằng nhau và trả về giá trị true mà thôi.
Sự khác biệt giữa === và == trong JavaScript
Qua các phân tích trên, chúng ta có thể thấy sự khác biệt giữa === và == trong JavaScript thể hiện rõ trong trường hợp chúng ta cần so sánh các giá trị thuộc kiểu dữ liệu khác nhau trong JavaScript.
Khi so sánh các giá trị thuộc kiểu dữ liệu khác nhau trong JavaScript bằng toán tử ==, các giá trị này sẽ được chuyển về cùng một kiểu dữ liệu rồi mới đem so sánh. Và kết quả phép so sánh sẽ hoàn toàn phụ thuộc vào giá trị được chuyển kiểu của chúng.
Ngược lại khi so sánh các giá trị thuộc kiểu dữ liệu khác nhau trong JavaScript bằng toán tử ===, chúng không được chuyển về cùng kiểu dữ liệu, và phép so sánh sẽ luôn trả về kết quả true.
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách sử dụng các phép so sánh trong JavaScript được biểu diễn thông qua các toán tử so sánh bằng trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/javascript/javascript-co-ban-den-nang-cao/toan-tu-trong-javascript/toan-tu-so-sanh-bang-trong-javascript/
Từ khóa » Toán Tử So Sánh Js
-
Các Toán Tử So Sánh Và Logic Trong JavaScript - ge
-
Các Toán Tử Trong JavaScript
-
Toán Tử So Sánh Và Toán Tử Logic Trong JavaScript - Web Cơ Bản
-
== Và === Trong JavaScript Khác Gì Nhau?
-
Toán Tử So Sánh Trong JavaScript
-
Nên Sử Dụng Toán Tử == Hay === Trong Javascript? - Viblo
-
Toán Tử So Sánh Và Logic Trong JavaScript - TEK4
-
Toán Tử So Sánh Trong JavaScript (P1. Toán Tử Quan Hệ)
-
Logical Và Comparison Operators Trong Javascript
-
Phân Biệt Toán Tử == Và === Trong JavaScript
-
Toán Tử Trong JavaScript | Học Lập Trình JavaScript
-
Các Toán Tử Trong Javascript - Freetuts
-
Toán Tử So Sánh Trong Javascript Phần 1 - YouTube
-
Toán Tử Trong JavaScript - NIIT - ICT Hà Nội
-
So Sánh 3 Dấu Bằng Trong Javascript
-
Các Toán Tử Trong JavaScript - 200lab Education
-
So Sánh Trong Javascript - KungFu Tech
-
Toán Tử Trong JavaScript - Lập Trình Từ Đầu
-
Toán Tử Trong JavaScript - VietTuts