You are on page 1of 1

 IIFE – Immediately Invoked Function Expression

- Thực thi ngay sau khi gọi


- Là hàm private
 Scope
- Các loại phạm vi:
+ Global
+ Code block (let, const)
+ Local scope (var, function)
- Biến trong hàm được tham chiếu bởi 1 hàm khác thì biến không bị giải phóng khỏi bộ nhớ
 Closure
- Là một hàm có thể ghi nhớ nơi nó được tạo và truy cập được biến ở bên ngoài phạm vi của

- Ứng dụng : viết code ngắn gọn, biểu diễn, ứng dụng tính private trong OOP
 Hoisting
- Là đưa phần khai báo biến lên trên đầu phạm vi của chúng
- Var -> undefined; let, const -> cannot access before initialization
- Function -> đưa tất cả lên
 Strict mode
 Primitive Types and Reference Types
- Value types (primitive data types: kiểu tham trị )
String, number, boolean, bigint, symbol, undefined, null
+ Giá trị của biến a lưu giá trị của a, THAM TRỊ
- Reference types (non-primitive data types: kiểu tham chiếu)
Object, Array, Function
+ a = {name: ‘tuan’}
b=a
a.name = ‘anh’
THAM CHIẾU

+ Giá trị của biến a lưu địa chỉ của biến a, nên b = a thì b cũng lưu địa chỉ của biến a (giống
như con trỏ thì cả a và b cùng trỏ đến 1 vùng ô nhớ). Vì vậy khi sửa a thì b cũng bị thay đổi theo.

- Data types with function


+ function (a, b) {
Value types: sửa không ảnh hưởng đến các biến
Reference types: sửa ảnh hưởng đến các biến
+ obj = JSON.parse(JSON.stringify(obj))
+ obj = {…obj} (object 1 cấp)
}
 This
- This đề cập đến đối tượng (object) nó đang thuộc về
- This trong hàm tạo là đại diện cho đối tượng sẽ được tạo (this.name = name)
- This được gọi bằng tên hàm thì this là window (undefined ở strict mode)

You might also like