So sánh không bằng giá trị và kiểu dữ liệu trong JavaScript
Ngoài toán tử != còn có toán tử
!==, xem xét cả kiểu dữ liệu khi
so sánh. Hãy cùng xem xét sự khác biệt giữa
chúng qua các ví dụ.
Giả sử so sánh hai số 3 bằng toán tử !=.
Toán tử này so sánh các giá trị xem chúng có KHÔNG bằng nhau không. Vì
giá trị của chúng bằng nhau, nên
điều kiện sẽ là sai:
if (3 != 3) {
console.log('+++');
} else {
console.log('---'); // cái này sẽ chạy
}
Bây giờ giả sử một trong các giá trị của chúng ta nằm
trong dấu ngoặc kép. Trong trường hợp này, toán tử !=
vẫn coi chúng là bằng nhau (vì giá trị
khớp nhau, còn kiểu dữ liệu không quan trọng đối với toán tử này)
và một lần nữa điều kiện sẽ là sai:
if ('3' != 3) {
console.log('+++');
} else {
console.log('---'); // cái này sẽ chạy
}
Bây giờ hãy so sánh hai số 3
bằng toán tử !==. Nó cũng
sẽ coi chúng là bằng nhau:
if (3 !== 3) {
console.log('+++');
} else {
console.log('---'); // cái này sẽ chạy
}
Còn nếu bây giờ đặt một trong hai số 3 trong dấu ngoặc kép,
thì toán tử !== sẽ coi hai số 3 của chúng ta
là không bằng nhau, vì mặc dù giá trị của chúng trùng nhau,
nhưng chúng có kiểu dữ liệu khác nhau:
if ('3' !== 3) {
console.log('+++'); // cái này sẽ chạy
} else {
console.log('---');
}
Không chạy mã, hãy xác định điều gì sẽ được in ra console:
let test1 = '3';
let test2 = '3';
if (test1 != test2) {
console.log('+++');
} else {
console.log('---');
}
Không chạy mã, hãy xác định điều gì sẽ được in ra console:
let test1 = '3';
let test2 = '3';
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}
Không chạy mã, hãy xác định điều gì sẽ được in ra console:
let test1 = 3;
let test2 = '3';
if (test1 != test2) {
console.log('+++');
} else {
console.log('---');
}
Không chạy mã, hãy xác định điều gì sẽ được in ra console:
let test1 = 3;
let test2 = '3';
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}
Không chạy mã, hãy xác định điều gì sẽ được in ra console:
let test1 = 3;
let test2 = 2;
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}