Toán tử

Chương này mô tả các biểu thức và toán tử của JavaScript, bao gồm toán tử gán, so sánh, số học, bitwise, logic, chuỗi và toán tử điều kiện.

Toán tử số học

Toán tử số học + (cộng), - (trừ), * (nhân), % (lấy phần dư) tương tự như ngôn ngữ C. Toán tử chia sẽ lấy kết quả là dạng số thực. Toán tử ** là phép toán lũy thừa.
Toán tử ++-- cũng tương tự như C.

1
2
3
4
5
6
5 * 2; // 10
5 / 2; // 2.5
5 ** 3; // 125
var a = 10;
a++;
console.log(a); // 11

Toán tử gán

Toán tử gán tương tự như C. Toán tử gán gộp +=, -=, *=, /=, %= cũng tương tự như C.

1
2
3
var a = 10;
a += 10;
console.log(a); // 20

Toán tử với bit

Toán tử với bit trong Javascript tương tự như C gồm có toán tử & (and bit), | (or bit), ^ (xor bit), ~ (not bit), « (Shift left bit), » (Shift right bit).

1
console.log(0b1001 & 0b1101); // -> 0b1001 <=> 9

Toán tử so sánh

Các toán tử so sánh trong Javascript tương tự như C gồm có:

Toán tử Ý nghĩa
== So sánh bằng
!= So sánh khác nhau
> Lớn hơn
>= Lớn hơn hoặc bằng
< Nhỏ hơn
<= Nhỏ hơn hoặc bằng

Khác với ngôn ngữ C, trong JavaScript so sánh bằng có thể sử dụng với string. Ví dụ như:

1
console.log('Learn Javascript' == 'Learn Javascript');

Ngoài ra còn hai toán tử so sánh khác mà ngôn ngữ C không có đó là:

  • === So sánh bằng nhau và cùng kiểu dữ liệu
  • !== Kết quả ngược lại với toán tử ===

Toán tử logic

Toán tử logic trong Javascript giống với C. Được mô tả như sau:

Toán tử Giải thích
&& Toán tử AND logic
and Toán tử AND logic (giống như &&)
|| Toán tử OR logc
or Toán tử OR logc (giống như ||)
! Toán tử NOT logic

Short-circuit evaluation

Short-circuit evaluation là tính toán mà giá trị của biểu thức được đánh giá như sau:

false && anything có kết quả luôn là false.
true || anything có kết quả luôn là true.

Chú ý là cho dù anything là gì thì cũng không quan trọng tới biểu thức cuối. Nên anything sẽ không được đánh giá và sẽ được bỏ qua.

Ví dụ dưới đây sẽ không cần kiểm tra hàm foo() có tồn tại và không thực thi foo()

1
var a = false && foo();

Toán tử điều kiện (Conditional Operator)

Toán tử điều kiện (a ? b : c) tương tự như ngôn ngữ C.

1
2
var a = 5;
var b = (a > 10) ? a : 10; // -> 10