[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 -> trueconst 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(typeof10);//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.asia

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *