Ôn tập NEXJS/REACT Flashcards
(150 cards)
- Sự khác biệt giữa var, let, const?
- The diffirence between var, let, const ?
+ var: function scope, hoisting
+ let/const: block scope
What is hoisting?
- Elevate functions and variables declarations to the “top scope” . This allows you to use a function or a variable before it is defined in your .js file.
- Đưa phần khai báo lên đầu scope, nhưng không đưa giá trị. Cho phép bạn sử dụng func or biến trước khi nó được khai báo trong file js
“this” trong arrow function khác gì general function?
Arrow function không có “this” riêng, dùng “this” của lexical scope
What is closure?
Closure là hàm có thể “nhớ” biến ở scope bên ngoài (scope cha) khi được gọi sau này ( tức là khi scope cha đã thực thi xong)
== và === khác nhau như nào?
== so sánh ép kiểu (type coercion)
=== so sánh giá trị và kiểu dữ kiểu
what is event loop?
Cơ chế xử lý async bằng cách đưa callback vào queue, hay nói cách khác là cơ chế giúp JS có thể thực hiện nhiều thao tác cùng 1 lúc ( concurrent modal)
Microtask vs Macrotask?
Microtask ( Promise) chạy truớc macrotask (setTimeout)
setTimeout(fn, 0) và promise.resolve().then(fn) cái nào chạy trước
Promise.then() chạy trước
Cách xử lý lỗi trong ascync/await?
Dùng try /catch hoặc catch() với promise
Tác dụng của promise.all() ?
Chạy nhiều promise song song, trả về khi tất cả thành công
Array/Object handling
- Sự khác nhau giữa shallow clone và deep clone
- Shallow clone sao chép 1 tầng, deep clone sao chép toàn bộ cấu trúc
- Dùng phương pháp nào để deep clone?
- structureClone() hoặc JSON.parse(JSON.stringify(obj)
Viết ví dụ dùng reduce() tính tổng
arr.reduce((a, b) => a + b)
Spread and rest operator khác nhau như nào?
Spead: mở rộng
Rest: gom nhiều tham số
?. trong JS là gì
Optional chaining, tránh lỗi khi truy cập nested object
OOP & Functional
- What is protype?
- Cơ chế kế thừa qua chuỗi prototype trong JS
Pure functinon là gì
Không side effect, cùng input => cùng output
What is Higher-Order- function (HOC)?
Hàm mà nó nhận/trả ra 1 hàm khác
What is Curry function?
Hàm chia nhỏ nhiều tham số thành nhiều hàm đơn
Lợi ích của tính bất biến (immutability) ?
Tránh bug, dễ debug, giúp react dễ tối ưu
Module & Tooling
- The difference between CommonJS and ESM
- Commón dùng require còn ESM dùng import/export
Tree shaking là gì?
Loại bỏ code không dùng khi bundle
Cách export default và expỏt named
export default fn vs export { fn }
Why we should devide small modal?
Dễ bảo trì, test, tái sử dụng