Đặt giá trị mặc định cho các biến hoặc tham số là một tình huống phổ biến mà chúng ta có thể gặp phải. Trong bài viết này, bạn sẽ tìm thấy sáu tùy chọn khác nhau để làm điều đó
Hãy bắt đầu nào
1. HOẶC [. ] Nhà điều hành
Toán tử OR [______45_______] có thể được sử dụng để quyết định giá trị mặc định
Khi toán hạng đầu tiên là true HOẶC [||
] trả về toán hạng đầu tiên và toán hạng thứ hai không được đánh giá. Khi toán hạng đầu tiên là sai, thì nó trả về toán hạng thứ hai
Như bạn đã nhận thấy, OR [||
] không nhất thiết phải trả về true
hoặc false
, nhưng nó trả về toán hạng thứ nhất hoặc thứ hai, tùy thuộc vào trường hợp. Toán hạng thứ hai sẽ là giá trị mặc định của chúng tôi
Chúng ta nên nhớ giá trị giả và trung thực là gì. JavaScript coi false
,
getStatus[]; //Pending
getStatus[undefined]; //Pending
0, getStatus[]; //Pending
getStatus[undefined]; //Pending
1, getStatus[]; //Pending
getStatus[undefined]; //Pending
2, getStatus[]; //Pending
getStatus[undefined]; //Pending
3 và getStatus[]; //Pending
getStatus[undefined]; //Pending
4 là giá trị giả. Tất cả các giá trị khác là giá trị trung thựcDưới đây là một ví dụ về việc thiết lập một biến dựa trên một biến khác. Nếu
getStatus[]; //Pending
getStatus[undefined]; //Pending
5 là sai, thì biến getStatus[]; //Pending
getStatus[undefined]; //Pending
6 được đặt thành getStatus[]; //Pending
getStatus[undefined]; //Pending
7. Ngược lại, nó nhận giá trị của biến getStatus[]; //Pending
getStatus[undefined]; //Pending
5Điều tương tự cũng xảy ra khi giá trị hiện tại của
getStatus[]; //Pending
getStatus[undefined]; //Pending
5 là một chuỗi rỗng. getStatus[]; //Pending
getStatus[undefined]; //Pending
6 mới nhận giá trị mặc định. Chuỗi rỗng là saiTrong ví dụ tiếp theo, toán hạng đầu tiên
getStatus[]; //Pending
getStatus[undefined]; //Pending
5 là true, vì vậy toán tử ||
trả về giá trị getStatus[]; //Pending
getStatus[undefined]; //Pending
52. Bài tập HOẶC [. =] Toán tử
Toán tử logic OR gán [
getStatus[null]; //null
4] chỉ gán các giá trị mới nếu toán hạng bên trái là saiDưới đây là một ví dụ về việc sử dụng
getStatus[null]; //null
4 trên một biến đang nắm giữ getStatus[]; //Pending
getStatus[undefined]; //Pending
1Tiếp theo là ví dụ gán giá trị mới cho biến chứa chuỗi rỗng. Chuỗi rỗng là sai
Chuỗi
getStatus[null]; //null
7 là giá trị trung thực. Sử dụng getStatus[null]; //null
4 trên một biến giữ giá trị như vậy không có hiệu lực3. Toán tử kết hợp Nullish [??]
Toán tử kết hợp nullish [
getStatus[null]; //null
9] có thể được sử dụng để đặt giá trị mặc địnhKhi toán hạng đầu tiên không phải là nullish, toán tử kết hợp nullish [
getStatus[null]; //null
9] trả về toán hạng đầu tiên. Nếu không, nó trả về cái thứ haiTrong ví dụ tiếp theo, toán hạng đầu tiên không có giá trị, do đó, ____________6 mới được đặt thành giá trị mặc định
Chuỗi trống là một giá trị sai nhưng không phải là null. Biến trạng thái mới được đặt thành một chuỗi rỗng trong trường hợp tiếp theo
Dưới đây là một ví dụ khác trong đó biến
getStatus[]; //Pending
getStatus[undefined]; //Pending
5 lưu trữ một giá trị chuỗi. Mặc định không được sử dụng4. Toán tử gán Nullish [??=]
Toán tử gán nullish logic [______22_______3] chỉ gán giá trị mới nếu giá trị hiện tại là nullish
getStatus[]; //Pending
getStatus[undefined]; //Pending
1 là một giá trị nullish, vì vậy trong ví dụ tiếp theo, biến getStatus[]; //Pending
getStatus[undefined]; //Pending
6 được đặt thành giá trị mặc địnhChuỗi rỗng không phải là rỗng. Thực hiện phép gán nullish logic không có tác dụng. Trong ví dụ bên dưới, biến
getStatus[]; //Pending
getStatus[undefined]; //Pending
6 vẫn được đặt thành một chuỗi rỗngĐiều tương tự xảy ra trong ví dụ tiếp theo. Biến
getStatus[]; //Pending
getStatus[undefined]; //Pending
6 vẫn được đặt thành chuỗi trạng thái getStatus[null]; //null
7. Toán tử gán nullish không áp dụng giá trị mặc định5. Giá trị mặc định của hàm
Các tham số chức năng mặc định cho phép các tham số đã đặt tên được khởi tạo với các giá trị mặc định nếu không có giá trị nào hoặc _________1 được truyền
Dưới đây là một ví dụ về chức năng chấp nhận giá trị mặc định
function getStatus[status = 'Pending']{
return status;
}
Gọi hàm không có đối số hoặc sử dụng
getStatus[]; //Pending
getStatus[undefined]; //Pending
1 làm đối số khiến hàm sử dụng giá trị mặc địnhgetStatus[]; //Pending
getStatus[undefined]; //Pending
getStatus[]; //Pending
getStatus[undefined]; //Pending
0 và getStatus[]; //Pending
getStatus[undefined]; //Pending
1 là các giá trị khác nhau. Khi được gọi với getStatus[]; //Pending
getStatus[undefined]; //Pending
0 làm đối số, hàm không sử dụng giá trị mặc địnhgetStatus[null]; //null
Điều tương tự xảy ra trong ví dụ sau. Mặc định không được áp dụng
getStatus[0]; //0
getStatus['']; //''
getStatus['Done']; //'Done'
6. Phân hủy cấu trúc với các giá trị mặc định
Toán tử gán hủy chấp nhận các giá trị mặc định,
Các giá trị mặc định trong phân công phá hủy hoạt động nếu thuộc tính không tồn tại hoặc nếu giá trị của nó được đặt thành
getStatus[]; //Pending
getStatus[undefined]; //Pending
1Xem xét ví dụ tiếp theo. Thuộc tính ||
5 bị thiếu trong đối tượng được chỉ định. Trong trường hợp này, biến ||
5 được mặc định
Khi thuộc tính được chỉ định có giá trị không phải là
getStatus[]; //Pending
getStatus[undefined]; //Pending
1, chẳng hạn như chuỗi rỗng, giá trị mặc định không được áp dụngTrong ví dụ tiếp theo, thuộc tính ||
5 có giá trị chuỗi. Mặc định không được sử dụng
Tiếp theo, chúng tôi kết hợp các giá trị mặc định trên phép gán phá hủy với các giá trị mặc định trên các tham số chức năng. Đây là cách chúng tôi có thể đảm bảo rằng thuộc tính ||
5 có giá trị mặc định khi tham số đối tượng đầu vào bị thiếu hoặc thuộc tính ||
5 bị thiếu hoặc
getStatus[]; //Pending
getStatus[undefined]; //Pending
1Ghi chú chính
Có thể đặt các giá trị mặc định bằng cách sử dụng toán tử OR[||
], phép gán OR [
getStatus[null]; //null
4], phép kết hợp nullish [getStatus[null]; //null
9] hoặc phép gán nullish [getStatus[0]; //0
getStatus['']; //''
getStatus['Done']; //'Done'
3]Hàm cho phép giá trị mặc định. Các giá trị mặc định chỉ được áp dụng khi các đối số được cung cấp bị thiếu hoặc được đặt thành
getStatus[]; //Pending
getStatus[undefined]; //Pending
1Việc gán phá hủy cho phép mặc định. Các giá trị mặc định chỉ được áp dụng khi các thuộc tính được chỉ định bị thiếu hoặc được đặt thành
getStatus[]; //Pending
getStatus[undefined]; //Pending
1