This repository was created with the intention of self-study to master JS concepts. Though it's not a requirement, it's a guide for future study other frameworks, libraries, and even languages.
Updating...
-
Callstack
-
Premitive Type, Reference Type
-
Implicit, Explicit, Nominal, Structuring, and Duck
-
Function, Scope, block scope, lexical scope
-
Arrow functions
-
IIFE, modules, namespaces
-
Message queue and Event Loop
-
Expression, statement
-
setTimeout, setInterval, requestAnimationFrame
-
this, bind, call and apply
-
Bitwise operators, type arrays and array buffers
-
DOM and Layout trees
-
Factories and Classes
-
new, constructor, instanceof and instance
-
Prototype Inheritance and Prototype Chain
-
Object.create and Object.assign
-
Closures
-
Higher order functions
-
Recursion
-
Pure functions, side effects, state mutation
-
map, reduce, filter
-
Collections and Generations
-
Promises
-
Async/await
-
Data Structures
-
Expensive Operation and Big-Oh notation
-
Algorithms
-
Inheritance, Polymophism and Reuse
-
Partial Applications, Currying, Compose and Pipe
-
Design patterns
-
Clean code
- 2 con trỏ (multiple pointers)
- Dãy tạm
Một số suy nghĩ về việc tối ưu thời gian chạy:
-
Dùng bảng băm khi đề bài yêu cầu tìm chính xác (O(1));
-
Dùng 2 con trỏ khi cần tìm gần đúng, hoặc tìm kế tiếp (chống vòng lặp for và đệ quy).
-
Biết dùng đệ quy đúng cách.
-
Dùng cây tìm kiếm tối thiểu trả về giá trị Min, không cần duyệt toàn bộ hay sort().
-
Dùng cây tìm kiếm nhị phân, vừa thêm, vừa kiếm.
- Đệ quy Backtrack
- Quy hoạch động - đệ quy có nhớ:
- Đếm cách
- Dùng ít nhất (chi phí nhỏ nhất)
- Nhánh cận ...
- Cây nhị phân: tối thiểu, tìm kiếm
- Graph
- Hash table, hash map ...
- Tìm median (eCommerce)
- Bài toán đặt phòng
- Autocomplete