- Bài quiz này tập trung vào cách lớp Date của JavaScript hoạt động trong nhiều tình huống đầu vào khác nhau
- Bao gồm các thử nghiệm về kết quả mà lớp Date trả về, có ném ngoại lệ hay không, cách xử lý nội bộ, v.v. khi nhận các giá trị đầu vào mà người dùng không ngờ tới (ví dụ: "wtf")
- Thông qua bài quiz này, có thể dễ dàng nắm bắt các khoảnh khắc ngoại lệ của JavaScript Date, chiến lược phân tích cú pháp và các hành vi bất ngờ như không tuân thủ tiêu chuẩn
- Mục đích là giúp lập trình viên JavaScript và người phụ trách kiểm thử nâng cao hiểu biết để giảm lỗi xử lý ngày tháng và sự bất định có thể phát sinh trong chương trình thực tế
1 bình luận
Ý kiến trên Hacker News
undefined behaviournhư bằng chứng mang tính quyết định cho sự vô nghĩa của công nghệ. Thật ra chỉ là mọi người hiểu sai khái niệm công nghệ thôi. Không thể dùng gạch để đựng nước thì chẳng có gì buồn cười cả, nhưng kỳ lạ là ai cũng kỳ vọng JavaScript sẽ bắt mọi ~lỗi~ thành lỗi thực sự hoặc tự sửa chúng. Đó là mục tiêu tốt, nhưng nếu không thể làm được thì cũng hơi kỳ khi lại xem đó là điều đáng tự hào. Tôi đã trải qua bầu không khí đó quá lâu rồiNaN, cũng không muốn chuyển đổi chuỗi nửa vờiDate.parse()thì cũng không phải vấn đề quá lớn. Trong thực tế rồi cũng sẽ dùng thư viện ngày tháng chuyên dụng. Vì ngay cả những phần ổn của Date cũng chẳng thật sự xuất sắcarray.filtervàstructuredcopy, còn lại thì bỏ qua hết vì chẳng có lợi ích thực tế mà chỉ tăng bề mặt tấn công. Rồi TypeScript xuất hiện, và theo tôi đó là cơ hội bị bỏ lỡ lớn nhất trong lịch sử JS. Ngay cả bây giờ, viết code tử tế trong JS về bản chất vẫn là chỉ dùng cẩn thận 1% ngôn ngữ. Mà ngay cả phần đó cũng phải dùng rất thận trọng thôi