Skip to content

ChauDinh/js-concepts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concepts in JavaScript I collect from other materials

Introduction

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.

Materials

Updating...

Table of Contents

  • 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

Trở thành một lập trình viên chuẩn mực

Một số thủ thuật cơ bản (tricks):

  • 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.

Thuật toán

  • Đệ 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ấu trúc dữ liệu

  • Cây nhị phân: tối thiểu, tìm kiếm
  • Graph
  • Hash table, hash map ...

Khả năng thực chiến - Xây dựng ứng dụng, app ...

  • Tìm median (eCommerce)
  • Bài toán đặt phòng
  • Autocomplete