Mục lục
Short-circuiting là một kỹ thuật trong JavaScript mà các biểu thức logic ( AND (&&) và OR (||)) sẽ dừng lại ngay khi kết quả của biểu thức đã được xác định, mà không cần phải kiểm tra tất cả các toán hạng. Vì việc kiểm tra liên quan trực tiếp đến Falsy Value vậy nên ta sẽ tìm hiểu xem Falsy Value là gì.
Falsy Value là gì?
Falsy value là những giá trị được đánh giá là false khi được chuyển đổi thành kiểu boolean. Falsy value là những giá trị bao gồm:
- false - giá trị boolean false
- 0 - số không
- "" hoặc '' - chuỗi rỗng
- null - không có giá trị
- undefined - giá chị không xác định
- NaN - Not a Number (Giá trị không phải là số)
Cách short-circuiting hoạt động với các toán tử logic (&& và ||):
Toán tử OR (||) trong Short-circuiting
Toán tử OR (||) trả về giá trị đầu tiên là "truthy" (không thuộc falsy value) trong chuỗi các biểu thức. Nếu gặp một giá trị "truthy", nó sẽ dừng lại ngay lập tức mà không cần đánh giá các biểu thức tiếp theo.
Ví dụ:
Giải thích: Vì false, null là giá trị thuộc falsy value nên khi gặp giá trị "Ngọc" không phải là Falsy Value nên nó sẽ nhận ngay giá trị là Ngọc mà không cần duyệt tiếp.
Ứng dụng: Thông thường chúng ta sẽ sử dụng cú pháp này là để gán giá trị mặc định cho biên khi nó có thể là null hoặc undefined
Lưu ý: Khi tất cả giá trị trong biểu thức đều thuộc Falsy Value thì nó sẽ lấy giá trị cuối cùng trong biểu thức.
Ví dụ:
Toán tử AND (&&) trong Short-circuiting
Toán tử AND (&&) trả về giá trị đầu tiên là "falsy" trong chuỗi các biểu thức. Nếu gặp một giá trị "falsy", nó sẽ dừng ngay lập tức và trả về giá trị đó mà không cần đánh giá biểu thức tiếp theo.
Ví dụ:
Giải thích: Vì "Ngọc", "Hello" là giá trị không thuộc falsy value nên khi gặp giá trị false là Falsy Value nên nó sẽ nhận ngay giá trị là false mà không cần duyệt tiếp.
Lưu ý: Khi tất cả giá trị trong biểu thức đều không thuộc Falsy Value thì nó sẽ lấy giá trị cuối cùng trong biểu thức.
Ví dụ:
Ứng dụng: Thường được dùng để kiểm tra nhiều điều kiện liên tiếp, và chỉ thực hiện một hành động nếu tất cả điều kiện là "truthy".
Ví dụ:
Nullish trong javascript
Nullish là gì? Nullish là khái niệm liên quan đến hai giá trị null và undefined. Cả 2 giá trị này đều được coi là nullish.
Cách sử dụng cú pháp nullish (??)
Cách sử dụng và hoạt động giống như toán tử OR (||) trong Short-circuiting nhưng thay vì check giá trị falsy value thì nó check giá trị null và undefined.
Ví dụ: