Hai toán tử này dễ bị nhầm lẫn dẫn đến việc gây lỗi chương trình nếu như người lập trình javascript không nắm rõ chúng. Điểm khác nhau giữa hai toán tử này là gì?
Toán tử “==”: so sánh bằng một cách gượng ép và trả về true nếu giá trị của chúng khớp nhau mà không cần phải cùng kiểu dữ liệu. Ví dụ:
HTML:
var a = "5";
var b = 5;
if(a == b){
// Do something
}
“a == b” như trên sẽ trả về true, do đó block code trong biểu thức điều kiện if sẽ được thực thi. Ngoài ra chúng ta có thể đoán ra được nếu “a = 5″, “b = 6″ thì “a == b” sẽ trả về false bởi chúng không cùng giá trị.
Toán tử “===”: tạm gọi là so sánh bằng tuyệt đối, nghĩa là toán tử này không chỉ so sánh các giá trị có bằng nhau hay không mà còn so sánh cả luôn kiểu dữ liệu của biến. Nếu không thỏa mãn cả 2 điều kiện trên thì chắc chắn kết quả trả về là false. Ví dụ:
HTML:
var a = "5";
var b = 5;
if(a === b){
// Do something
}
Với đoạn code trên, “a == b” chắc chắn sẽ trả về false vì chúng không cùng kiểu dữ liệu ( biến a kiểu string, biến b kiểu number) mặc dù giá trị của chúng bằng nhau.
Ngoài ra còn các trường hợp tương tự bạn có thể tự đoán ra được hoặc code thử để nhận ra kết quả.
Lưu ý: Trong javascript, toán tử “==” được ví như là ác quỷ và “===” như 1 thiên thần. Dĩ nhiên chúng ta phải chọn chơi chung với thiên thần rồi đúng không?
Hy vọng bài viết sẽ giúp ích phần nào cho việc phân biệt hai toán tử trên.
Toán tử “==”: so sánh bằng một cách gượng ép và trả về true nếu giá trị của chúng khớp nhau mà không cần phải cùng kiểu dữ liệu. Ví dụ:
HTML:
var a = "5";
var b = 5;
if(a == b){
// Do something
}
“a == b” như trên sẽ trả về true, do đó block code trong biểu thức điều kiện if sẽ được thực thi. Ngoài ra chúng ta có thể đoán ra được nếu “a = 5″, “b = 6″ thì “a == b” sẽ trả về false bởi chúng không cùng giá trị.
Toán tử “===”: tạm gọi là so sánh bằng tuyệt đối, nghĩa là toán tử này không chỉ so sánh các giá trị có bằng nhau hay không mà còn so sánh cả luôn kiểu dữ liệu của biến. Nếu không thỏa mãn cả 2 điều kiện trên thì chắc chắn kết quả trả về là false. Ví dụ:
HTML:
var a = "5";
var b = 5;
if(a === b){
// Do something
}
Với đoạn code trên, “a == b” chắc chắn sẽ trả về false vì chúng không cùng kiểu dữ liệu ( biến a kiểu string, biến b kiểu number) mặc dù giá trị của chúng bằng nhau.
Ngoài ra còn các trường hợp tương tự bạn có thể tự đoán ra được hoặc code thử để nhận ra kết quả.
Lưu ý: Trong javascript, toán tử “==” được ví như là ác quỷ và “===” như 1 thiên thần. Dĩ nhiên chúng ta phải chọn chơi chung với thiên thần rồi đúng không?
Hy vọng bài viết sẽ giúp ích phần nào cho việc phân biệt hai toán tử trên.