[Javascript căn bản]Type Coercion và toán tử trong Javascript

    Bài viết note kiến thức lập trình Javascript căn bản

1. Type Coercion

    Type Coercion là chuyển đổi kiểu dữ liệu từ kiểu này sang kiểu khác.

    Ví dụ: đổi kiểu số sang kiểu chuỗi, kiểu chuỗi sang kiểu boolean...

  • Toán tử +
console.log(1 + 2);
console.log(3+4);
console.log(10 + "10"); //1010
console.log("10" + 10); /1010

    Giải thích: Javascript sẽ chuyển số 10 thành chuỗi "10" với toán tử + console.log(String(10) + "10");

console.log(null + ""); // "null"
console.log(null + undefined); //NaN - không phải số
console.log(null + 10); //10
  • Toán tử khác + (-, *, /, %)
console.log("10" - 10); // 0 Number("10") - 10
console.log("" - 1); // Number("") -> 0 -> 0 - 1 = -1
console.log(false - true); //Number(false) = 0 - Number(true) = 1 -> 0 -1 = -1

2. Toán tử so sánh

  • Các toán tử: > < >= <=
console.log(5 > 7); //false
console.log(10 > 7); //true
console.log(6 >= 6); //true
console.log(7 >= 8); //false
console.log(6 <= 6); //true

3. Toán tử logic

  • Toán tử logic cơ bản: && || !
console.log(5 > 7 && 8 > 3); //false && true -> false
console.log(5 > 7 || 8 > 3); //false || true -> true
const isChecked = true;
console.log(!isChecked); //false
  • Boolean &
//false && true -> false
//true && fasle -> fasle
//false && false -> false
//true && true -> true
  • Boolean ||
// false || true -> true
// true || fasle -> true
// true || true -> true
// false || false -> false

4. So sánh == vs ===

    == loose equality vs === strict equality

  • == so sánh theo giá trị
console.log(10 == 10); //true
console.log(10 == '10'); //true "10" == "10"
console.log(true == 1); //Number(true) = 1 -> 1 == 1 -> true
console.log(1 == "01"); //Number("01") = 1 == 1 -> true
console.log(null == ""); // "null"!= " -> false
console.log(typeof 10); //number
console.log(typeof "10"); //string
  • === so sánh theo giá trị và kiểu dữ liệu
console.log(10 === '10'); //false
console.log(10 !== '10') ; //true

    => Khuyến khích sử dụng so sánh === strict equality

    Nguồn:

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan