Javascript tuyển tập - Phần 2

Mục lục
Mục lục
Trong phần 2, chúng ta sẽ tìm hiểu về cách làm việc với biến trong JavaScript, bao gồm khai báo, gán giá trị, và thay đổi giá trị của biến. Ngoài ra, chúng ta cũng sẽ khám phá phạm vi (scope) trong JavaScript và một số hàm thường dùng.
Khai báo Biến
JavaScript cung cấp ba từ khóa để khai báo biến: var
, let
, và const
.
var
- Phạm vi hàm: Biến khai báo bằng
var
có phạm vi trong hàm chứa nó. - Hoisting: Biến
var
được hoisting lên đầu phạm vi của nó, nhưng chỉ hoisting phần khai báo, không hoisting phần gán giá trị.
let
- Phạm vi khối:
let
có phạm vi trong khối code (block) chứa nó. - Không hoisting giá trị:
let
cũng được hoisting nhưng nằm trong “Temporal Dead Zone” cho đến khi gặp dòng khai báo.
const
- Phạm vi khối: Tương tự
let
,const
có phạm vi trong khối code. - Không thể thay đổi giá trị: Biến
const
phải được gán giá trị khi khai báo và không thể gán lại sau đó.
Hiểu rõ hơn về Hoisting
Hoisting là một hành vi trong JavaScript khi các khai báo biến và hàm được đưa lên đầu phạm vi của chúng trước khi code được thực thi.
Hoisting với var
Khi sử dụng var
, JavaScript hoisting phần khai báo biến lên đầu phạm vi, nhưng không hoisting phần gán giá trị.
Trong ví dụ trên, JavaScript xử lý như sau:
Hoisting với let
và const
- Temporal Dead Zone
let
và const
cũng được hoisting, nhưng khác với var
, chúng không được khởi tạo với giá trị undefined
. Thay vào đó, chúng tồn tại trong “Temporal Dead Zone” cho đến khi đến dòng khai báo.
Bảng so sánh giữa var, let và const
Đặc điểm | var | let | const |
---|---|---|---|
Phạm vi | Global scope | Block scope | Block scope |
Hoisting | Hoisted và khởi tạo với undefined |
Hoisted nhưng không khởi tạo (TDZ) | Hoisted nhưng không khởi tạo (TDZ) |
Gán lại giá trị | Có thể | Có thể | Không thể |
Khai báo lại | Có thể | Không thể trong cùng phạm vi | Không thể trong cùng phạm vi |
Khởi tạo | Không bắt buộc | Không bắt buộc | Bắt buộc |
Giới thiệu từ | ES1 (1997) | ES6 (2015) | ES6 (2015) |
Lưu ý khi sử dụng ba từ khóa khai báo
-
Sử dụng
var
:- Tránh sử dụng
var
trong code mới - Chỉ nên sử dụng khi cần tương thích với trình duyệt cũ không hỗ trợ ES6
- Cẩn thận với hoisting và phạm vi
- Tránh sử dụng
-
Sử dụng
let
:- Dùng khi giá trị biến cần thay đổi
- Phù hợp cho các biến counter, các giá trị tạm thời
- Nên khai báo càng gần nơi sử dụng càng tốt
-
Sử dụng
const
:- Ưu tiên sử dụng
const
làm mặc định - Dùng cho các giá trị không thay đổi, tham chiếu không đổi
- Lưu ý: với object và array, nội dung bên trong vẫn có thể thay đổi
- Ưu tiên sử dụng
Gán Giá trị cho Biến
Toán tử gán =
được sử dụng để gán giá trị cho biến.
Thay đổi Giá trị của Biến
Biến khai báo bằng var
hoặc let
có thể thay đổi giá trị trong quá trình thực thi.
Phạm vi trong JavaScript
Scope là gì?
Scope (phạm vi) xác định nơi biến có thể được truy cập trong code.
Global Scope
Biến khai báo ngoài mọi hàm hoặc khối code có phạm vi toàn cục.
Local Scope
Biến khai báo trong hàm hoặc khối code có phạm vi cục bộ.
Lưu ý khi sử dụng Scope
- Tránh sử dụng quá nhiều biến toàn cục để giảm thiểu xung đột và lỗi.
- Sử dụng
let
vàconst
để kiểm soát phạm vi biến chặt chẽ hơn. - Ưu tiên phạm vi nhỏ nhất có thể cho biến.
Một số Hàm Thường Dùng
alert()
Hiển thị hộp thoại thông báo.
confirm()
Hiển thị hộp thoại xác nhận với hai nút OK và Cancel.
setTimeout()
Thực thi hàm sau một khoảng thời gian.
setInterval()
Thực thi hàm định kỳ sau mỗi khoảng thời gian.
Tóm cái váy lại
Trong phần tiếp theo, chúng ta sẽ khám phá sâu hơn về các toán tử, biểu thức cơ bản, các kiểu so sánh, câu lệnh rẽ nhánh, vòng lặp bờ la bờ la. Nói chung là nếu mình khum lười hihi. Cảm ơn các bạn đã đọc ạaa