So sánh bằng nghiêm ngặt về giá trị và kiểu dữ liệu trong JavaScript
Giả sử bạn muốn so sánh sao cho số trong dấu nháy không bằng với số đó nhưng không có dấu nháy. Nói cách khác, bạn muốn so sánh sao cho phép so sánh không chỉ dựa trên giá trị, mà còn cả kiểu dữ liệu.
Để làm điều này, thay vì sử dụng toán tử ==, nên
sử dụng toán tử ===. Trong ví dụ tiếp theo
khi so sánh chuỗi '3' với
số 3, điều kiện sẽ là sai,
vì các biến, mặc dù bằng nhau về giá trị,
nhưng không bằng nhau về kiểu:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // cái này sẽ chạy
}
Còn khi so sánh hai chuỗi '3'
thì điều kiện sẽ đúng:
if ('3' === '3') {
console.log('+++'); // cái này sẽ chạy
} else {
console.log('---');
}
Cũng như khi so sánh các số:
if (3 === 3) {
console.log('+++'); // cái này sẽ chạy
} else {
console.log('---');
}
Sự khác biệt giữa toán tử == và toán tử
=== thể hiện rõ chính xác khi
giá trị giống nhau, nhưng kiểu dữ liệu khác nhau.
Trong các trường hợp khác, các toán tử này hoạt động
giống nhau. Ví dụ, khi so sánh các số
khác nhau, tất nhiên, sẽ in ra '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // cái này sẽ chạy
}
Không chạy code, 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 code, 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 code, 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 code, 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 code, 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('---');
}