Gần đây tôi đã viết rất nhiều mã ES6 cho io.js. Không có nhiều mã trong tự nhiên để học hỏi, vì vậy tôi cảm thấy như mình đang xác định các quy ước của riêng mình khi tôi đi.
Câu hỏi của tôi là về khi sử dụng const
vs let
.
Tôi đã áp dụng quy tắc này: Nếu có thể, hãy sử dụng const
. Chỉ sử dụng let
nếu bạn biết giá trị của nó cần thay đổi. (Bạn luôn có thể quay lại và thay đổi const
thành a let
nếu sau đó hóa ra bạn cần thay đổi giá trị của nó.)
Lý do chính cho quy tắc này là nó dễ dàng áp dụng nhất quán. Không có khu vực màu xám.
Vấn đề là, khi tôi áp dụng quy tắc này, trong thực tế 95% các tuyên bố của tôi là const
. Và điều này có vẻ kỳ lạ với tôi. Tôi chỉ sử dụng let
cho những thứ như i
trong một for
vòng lặp, hoặc đôi khi cho những thứ như tổng số Fibonacci tích lũy (không xuất hiện nhiều trong cuộc sống thực). Tôi đã rất ngạc nhiên về điều này - hóa ra 95% 'biến' trong mã ES5 của tôi cho đến nay là cho các giá trị không thay đổi. Nhưng nhìn thấy const
tất cả các mã của tôi cảm thấy sai bằng cách nào đó.
Vì vậy, câu hỏi của tôi là: sử dụng const
nhiều như vậy có ổn không? Tôi thực sự nên làm những việc như thế const foo = function () {...};
nào?
Hoặc tôi nên dự trữ const
cho những tình huống mà bạn khó mã hóa một chữ theo nghĩa đen ở đầu mô-đun - loại bạn làm trong mũ đầy đủ, như thế const MARGIN_WIDTH = 410;
nào?
function foo() {...}
tốt hơn<anything> foo = function() {...}
function foo() {...}
có thể gây nhầm lẫn nhỏ khi gỡ lỗi, do cẩu. Ngoài ra, sự tồn tại của nó có nghĩa là chúng ta có hai cấu trúc làm cùng một việc nhưng một trong số chúng chỉ hoạt động trong một bối cảnh rất cụ thể. (Bạn có thể sử dụng một biểu hiện chức năng ở bất cứ đâu một biểu thức có thể tồn tại, nhưng bạn chỉ có thể sử dụng một tuyên bố chức năng ở cấp tuyên bố.) Nếu bạn thích ngắn gọn, vấn đề chỉ có thể là rằng cú pháp biểu hiện chức năng sử dụng toàn bộ từ function
.
const
nhiều như vậy là ổn .