Please enable JavaScript.
Coggle requires JavaScript to display documents.
Javascript, lexical-environment - Coggle Diagram
Javascript
Functions
một khối mã cụ thể được xây dựng để xử lý một công việc nhất định, có thể tái sử dụng
Function Declaration
Hàm được định nghĩa với từ khóa function, có tên và có thể được hoisted
-
-
Call, Bind, Apply
bind() cho phép chúng ta dễ dàng thiết lập một đối tượng cụ thể sẽ bị ràng buộc này khi một chức năng hoặc phương pháp được gọi.
Điểm khác nhau cơ bản giữa chúng là apply sẽ truyền 1 array các tham số còn call sẽ truyền lần lượt các tham số.
-
Higer order function
-
Phương thức map() tạo ra một mảng mới bằng cách gọi hàm callback được cung cấp như một đối số trên mỗi phần tử của mảng đầu vào. Phương thức map() sẽ lấy mỗi giá trị trả về từ hàm callback và tạo ra một mảng mới sử dụng các giá trị này.
-
Closure
-
-
-
để thực sự hiểu về closure thì chúng ta cần phải tìm hiểu điều gì sẽ thực sự xảy ra khi chạy một chương trình javascript
-
-
Recursion (Đệ quy): Execution context cho phép một hàm gọi chính nó, và mỗi lần gọi tạo ra một execution context mới, giúp theo dõi các biến cục bộ riêng biệt cho mỗi lần gọi.
Aysnchonous
Đồng bộ
mã đồng bộ sẽ được thị thi theo trình tự từ trên xuống dưới. Mỗi câu lệnh phải được thực hiện xong thì câu lệnh tiếp theo mới được thực thi
=> nếu một câu lệnh mất nhiều thời gian để hoàn thành, nó sẽ block quá trình thực hiện các câu lệnh tiếp theo
Bất đồng bộ
Cơ chế bất đồng bộ (asynchronous) trong JavaScript là một đặc điểm nổi bật, cho phép chương trình xử lý các tác vụ dài và chờ đợi mà không chặn luồng chính của chương trình.
-
-
callback
một hàm được truyền vào hàm khác dưới dạng đối số, sau đó nó sẽ được gọi lại bên trong hàm nhận để thực hiện một số tác vụ nhất định
Callback cần thiết vì chúng cho phép một chương trình thực hiện các hành động sau khi một tác vụ bất đồng bộ hoàn thành, mà không làm gián đoạn luồng thực thi chính của chương trình. Điều này đặc biệt hữu ích khi làm việc với các tác vụ như xử lý file, gọi API, hoặc giao tiếp với cơ sở dữ liệu, nơi mà thời gian thực hiện có thể không xác định.
promise
-
một đối tượng đại diện cho một giá trị chưa được xác định tại thời điểm tạo promise, nhưng sẽ được xác định trong tương lai.
-
-
async await
async/await là một cú pháp trong JavaScript được giới thiệu trong phiên bản ECMAScript 2017. được xây dựng dựa trên promise
-
code nhìn trông dễ đọc , tuyến tính
Objects
-
-
Cách copy một object
-
sử dụng: const copiedObject = Object.assign({}, originalObject);
-
-
methods
-
-
Object.entries(obj) – returns an array of [key, value] pairs.
Map và Set
Map
một tập hợp các cặp key-value, trong đó bất kỳ giá trị nào (bao gồm cả đối tượng và giá trị nguyên thủy) có thể được sử dụng làm key hoặc value.
Set
một tập hợp các giá trị duy nhất, trong đó mỗi giá trị chỉ xuất hiện một lần (không có giá trị trùng lặp).
Tại sao cần có?
Hiệu suất và Tính linh hoạt: Cả Map và Set đều cung cấp cách truy cập và thao tác dữ liệu hiệu quả hơn so với các cấu trúc dữ liệu truyền thống như Object và Array. Map cho phép sử dụng bất kỳ giá trị nào làm key, trong khi Set đảm bảo các giá trị là duy nhất.
-
Generator
-
. Generator trả về một đối tượng có thể lặp (iterator), và mỗi lần gọi phương thức next() trên đối tượng đó sẽ tiếp tục thực thi hàm từ điểm đã tạm dừng cho đến khi gặp yield hoặc kết thúc hàm.
-
-
kn
-
thông dịch và biên dịch
thông dịch
. Khi chương trình chạy đến dòng lệnh nào sẽ chuyển thành mã máy đến đó để máy tính có thể thực thi.
biên dịch
Thay vì chạy trực tiếp thành mã máy, trình biên dịch sẽ phải chuyển đổi ngôn ngữ lập trình thành mã máy rồi chứa kết quả vào ổ đĩa cứng để có thể thực thi ở lần chạy sau.
-
So sánh == và === ?
-
-
Coersion
quá trình mà ngôn ngữ tự động chuyển đổi một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác khi cần thiết. Quá trình này có thể xảy ra một cách tường minh (explicit coercion) hoặc ngầm định (implicit coercion).
-
-
-
-
-
-
Định nghĩa
cấu trúc dữ liệu chứa một tập hợp các phần tử , được lưu trữ liên tiếp trong bộ nhớ
Các phần tử trong một mảng có thể thuộc bất kỳ kiểu dữ liệu nào
DOM
-
Đặc điểm
Truy cập và thay đổi:
DOM cho phép các lập trình viên truy cập, thay đổi cấu trúc, nội dung và phong cách của tài liệu. Ví dụ: bạn có thể thay đổi nội dung của một thẻ HTML, thêm hoặc xóa các phần tử, thay đổi thuộc tính CSS, v.v.
Tương tác động
DOM thường được sử dụng để tạo ra các trang web tương tác động bằng cách sử dụng JavaScript để thao tác với tài liệu HTML.
Cấu trúc cây:
được biểu diễn dưới dạng cây với các nút (nodes). Các nút này bao gồm các phần tử (elements), văn bản (text), thuộc tính (attributes), và các kiểu nút khác.
Event bubbling và event capturing là hai cơ chế xử lý sự kiện trong DOM của trình duyệt. Chúng quy định cách các sự kiện di chuyển qua các phần tử trong DOM.
-
-
Prototype
-
Thuộc tính prototype này được sử dụng để định nghĩa các thuộc tính và phương thức mà các đối tượng được tạo từ hàm sẽ kế thừa
Prototype chaining là cơ chế mà JavaScript sử dụng để kế thừa các thuộc tính và phương thức từ các đối tượng khác. Khi bạn truy cập một thuộc tính hoặc phương thức trên một đối tượng, JavaScript sẽ tìm thuộc tính hoặc phương thức đó trên đối tượng đó trước. Nếu không tìm thấy, JavaScript sẽ tiếp tục tìm kiếm trên prototype của đối tượng đó, và cứ thế tiếp tục theo chuỗi prototype cho đến khi tìm thấy hoặc đến cuối chuỗi.
OOP
4 tính chất của OOP
Inheritance
một lớp (class) có thể kế thừa các thuộc tính và phương thức từ một lớp khác. Điều này cho phép tái sử dụng mã và tạo ra các mối quan hệ giữa các lớp.
Polymorphism
đa hình có thể được thực hiện thông qua phương thức ghi đè (method overriding) và giao diện nhất quán giữa các lớp kế thừa.
Encapsulation
đóng gói các thuộc tính và phương thức trong 1 đối tượng, giúp bảo vệ dữ liệu khỏi sự truy cập bên ngoài
sử dụng hàm tạo (constructor function), es6 class
Abstraction
Abstraction là quá trình ẩn đi các chi tiết cài đặt phức tạp và chỉ hiển thị các phần quan trọng của đối tượng. Điều này giúp giảm độ phức tạp và tăng tính dễ sử dụng.
mô hình hóa một hệ thống như một tập hợp các đối tượng, trong đó mỗi đối tượng đại diện cho một số khía cạnh cụ thể của hệ thống.
-
Variables
So sánh var let const
-
let
-
-
Khả năng tái khai báo: Không thể tái khai báo trong cùng một phạm vi, nhưng có thể gán lại giá trị.
const
-
Khả năng tái khai báo và gán lại giá trị: Không thể tái khai báo hoặc gán lại giá trị. Tuy nhiên, nếu const là một đối tượng hoặc mảng, các thuộc tính bên trong có thể được thay đổi.
-
-
-