---
title: "Các toán tử trong JavaScript"
description: "Bất kỳ một ngôn ngữ lập trình nào cũng có các toán tử để phục vụ cho việc hoạt động của ứng dụng, JavaScipt cũng không ngoại lệ. Vậy những toán tử đó là những toán tử nào, chúng ta cùng nhau tìm hiểu nhé 😉"
canonical: "https://200lab.io/blog/toan-tu-trong-javascript"
published: "2021-07-16T07:42:21Z"
updated: "2026-08-21T07:18:01Z"
authors: ["TỪ QUỐC HƯNG"]
tags: ["Javascript", "Frontend"]
reading_minutes: 5
access: "public"
---

Bất kỳ một ngôn ngữ lập trình nào cũng có các toán tử để phục vụ cho việc hoạt động của ứng dụng, JavaScipt cũng không ngoại lệ. Vậy những toán tử đó là những toán tử nào, chúng ta cùng nhau tìm hiểu nhé 😉.

## I. Giới thiệu

Toán tử là các dấu hay ký tự đặc biệt, dùng để thực hiện các phép tính của một biểu thức nào đó để cho ra kết quả cuối cùng.

## II. Các loại toán tử

Trong JavaScript có các loại toán tử cơ bản cần phải ghi nhớ gồm:

- Toán tử số học - Arithmetic Operators
- Toán tử so sánh - Comparison Operators
- Toán tử logic - Logical Operators
- Toán tử gán - Assignment Operators
- Toán tử ba ngôi - Conditional Operators

Chúng ta cùng nhau tìm hiểu từng loại toán tử một nhé 😉.

### 1. Toán tử số học - Arithmectic Operators

    Toán tử
    Mô tả

    +
    Cộng

    -
    Trừ

    \*
    Nhân

    \*\*
    Lũy thừa (**ES6**)

    /
    Phép chia

    %
    Phép chia lấy phần dư

    ++
    Tăng một giá trị

    --
    Giảm một giá trị

Cùng đi vào ví dụ cho dễ hiểu nhé 😁, phép `+` , `-`, `*` thì quá quen thuộc rồi nên mình không đề cập đến nó nhé 😆

```
// Phép ++ và tương tự cho --
let a = 1, b = 1, c = 1, d = 1;
a++;
console.log(a); //--> a = 2
++b;
console.log(b); //--> b = 2

//Cần lưu ý vị trí đặt toán tử ++ và -- đấy nhé
console.log(c++); //--> c = 1
console.log(c); //--> c = 2
//---------------------------
console.log(++d); //--> d = 2

//Phép lũy thừa
let e = 2;
console.log(a**2); //--> 4

//Phép / và %
let f = 5;
console.log(f/2); //--> 2.5
console.log(f%2); //--> 1 | 0.5 ~ 1
```

Giải thích một chút nhé 😁, `c++` bằng `1` là vì ta log `c` rồi mới tăng lên một, đó là ý nghĩa khi đặt toán tử `++` sau một biến, còn đối với `++d` là tăng `d` lên `1` rồi mới log `d` do đó `d = 2`. Đây là ý nghĩa của việc đặt toán tử `++` trước một biến, tương tự với toán tử -- nhé 😉.

`f = 5` mà `f` chia lấy dư cho `2` mà cho kết quả bằng `1` là do trong JavaScript tự động làm tròn số lên đó nha 😁.

### 2. Toán tử so sánh - Comparison Operators

    Toán tử
    Mô tả

    ==
    So sánh bằng theo giá trị

    ===
    So sánh bằng theo cả kiểu dữ liệu và giá trị

    !=
    So sánh không bằng theo giá trị

    !==
    So sánh không bằng theo cả kiểu dữ liệu và giá trị

    \>
    So sánh lớn hơn

    \<
    So sánh bé hơn

    \>=
    So sánh lớn hơn hoặc bằng

    \<=
    So sánh bé hơn hoặc bằng

    ?
    Toán tử ba ngôi

```
let a = 1, b = '1';
a == b //--> true
a === b //--> false
a !== b //--> true
a != b //--> false
```

Giải thích nè 😁, `a == b` trả về `true` là vì về mặt giá trị `a` và `b` đều bằng `1` nên `a !=b` trả về `false` luôn nè, tuy nhiên về mặt kiểu dữ liệu lại khác nhau (một thằng kiểu `number` một thằng kiểu `string`) do đó `a === b` trả về `false` và `a !== b` là `true`.

### 3. Toán tử logic - Logical Operators

    Toán tử
    Mô tả

    &&
    Toán tử và (còn được gọi là toán tử **AND**)

    ||
    Toán tử hoặc (còn được gọi là toán tử **OR**)

    !
    Toán tử phủ định

```
let a = 5, b = 10;
(a != b) && (a < b); //--> true

(a > b) || (a == b); //--> false

(a < b) || (a == b); //--> true

!(a < b); //--> false

!(a > b); //--> true
```

Đối với toán tử `&&` thì nếu toán hạn cả hai vế đều khác 0 thì sẽ trả về `true` còn ngược lại thì nó sẽ trả về `false`. Toán tử `||` thì khác, nếu một trong hai toán hạng khác `0` thì sẽ trả về `true`. Với toán tử `!` là toán tử phủ định, `(a < b)` là đúng sẽ trả về `true` nhưng gặp toán tử `!` thì phủ định của `true` là `false` 😉.

### 4. Toán tử gán - Assignment Operators

    Toán tử
    ví dụ
    Tương đương

    =
    a = b
    a = b

    +=
    a += b
    a = a + b

    -=
    a -= b
    a = a - b

    \*=
    a \*= b
    a = a \* b

    /=
    a /= b
    a = a / b

    %=
    a %= b
    a = a % b

    \*\*=
    a \*\*= b
    a = a\*\*b

### 5. Toán tử ba ngôi - Conditional Operators

Toán tử 3 ngôi là một toán tử vô cùng hữu ích trong JavaScript, toán tử này giống  như là bản rút gọn của câu lệnh `if-else`

    Toán tử
    Mô tả

    ?:
    Điều kiện ? giá trị 1 : giá trị 2

Đơn giản thôi, nếu điều kiện trước dấu `?` trả về `true` thì sẽ trả về `giá trị 1` còn `false` thì sẽ trả về `giá trị 2`

```
let a = 1, b = 10;

a > b ? "a lớn hơn b" : "a nhỏ hơn b" //--> "a nhỏ hơn b"
```

Đơn giản phải không nào 😁

## III. Tổng kết

Trên đây là 5 loại toán tử căn bản cần phải nắm rõ khi học ngôn ngữ lập trình JavaScript, ngoài 5 loại toán tử cơ bản trên vẫn còn 5 loại toán tử khác ít gặp và nâng cao hơn nhé, cuối series này mình sẽ giới thiệu sau nhé 🤪. Bài sau chúng ta sẽ cùng nhau tìm hiểu về các câu lệnh điều khiển trong JavaScript nhé. Cảm ơn các bạn đã đọc 😎.

## Đọc thêm

- [Event Loop là gì? Cơ chế hoạt động của Event Loop trong JavaScript](https://200lab.io/blog/event-loop-la-gi.md): Event Loop là một cơ chế cho phép xử lý các tác vụ bất đồng bộ trong JavaScript, sử dụng một vòng lặp vô tận để kiểm tra, quản lý các tác vụ.
- [So sánh Golang và NodeJS chi tiết](https://200lab.io/blog/so-sanh-golang-vs-nodejs.md): Golang và NodeJS khác nhau như thế nào? Golang và Nodejs từ lâu đã trở thành chủ đề sôi nổi. Nodejs đã chiếm ưu thế trong một khoảng thời gian dài. Golang liệu có đủ sức thuyết phục để chuyển đổi?
- [ReactJS Tutorial for Beginners Phần 2](https://200lab.io/blog/reactjs-tutorial-for-beginners-phan-2.md): Trong bài viết này chúng ta sẽ đi qua năm nội dung đầu tiên của tutorial
- [ReactJS vs React Native - Gà cùng một mẹ liệu có giống nhau?](https://200lab.io/blog/reactjs-vs-react-native.md): Bạn có đang rối giữa ReactJS vs React Native? Nên chọn cái nào thì tốt hơn? Có thể tái sử dụng code của ReactJS cho React Native hay không? Hãy khám phá câu trả lời thông qua bài viết so sánh ReactJS vs React Native này bạn nhé!
- [Netflix Clone với ReactJS, Styled Components và Firebase (Firestore & Auth) - Phần 7](https://200lab.io/blog/netflix-clone-voi-reactjs-styled-components-va-firebase-firestore-auth-phan-7.md): Nối tiếp phần 6 của series, trong phần này, chúng ta sẽ bắt tay vào code Sign Up page,config lại phần router để đáp ứng được vấn đề Authentication kèm theo tạo custom hook để listening for Authentication. Không dài dòng nữa, Chúng ta bắt đầu thôi 😁.
- [Mọi bài viết chủ đề Javascript](https://200lab.io/blog/tags/javascript.md)

Toàn bộ nội dung: https://200lab.io/llms.txt
