Các ngôn ngữ ra đời khá lâu như C++, Java, C# có mảng tĩnh (fixed array) chủ yếu là do nhiều yếu tố như hiệu năng cao hơn, kiểm tra lỗi dễ hơn trong quá trình biên dịch từ đó bắt bug nhanh hơn. Về cơ bản, việc sinh ra mảng động của C#, JAva. Là giúp cho việc tránh sai sót trong quá trình tự quản lý bộ nhớ của lập trình viên. Nếu ở C, khi cấp phát 1 mảng mới bạn phải làm nhiều bước thì C#, Java sẽ tự lo cho bạn. Vì mục đích tụi nó sinh ra để việc lập trình tiện hơn nhưng không ảnh hưởng hiệu xuất của phần mềm.
Vì sao JS lại không cho mảng tĩnh?
- Mục đích ban đầu của JS sinh ra là để cho mọi người tiếp cận vì sự bùng nổ của WWW khi đó (cuối thế kỷ 20). Tức mục tiêu của JS sinh ra không phải là dành cho hiệu suất, mà là sự dễ tiếp cận. JS phải tiện tới mức người học phải học JS thật nhanh.
- Mà để nhanh thi không nên có mấy thứ rườm rà như kiểu dữ liệu, quản lý này quản lý nọ. Nên JS đã theo hướng dynamic type, lược bỏ thứ mà phải tự quản lý càng nhiều càng tốt. Cứ để JS lo. -> Nếu để mảng tĩnh -> JS sẽ có 2 loại mảng -> Rối người dùng, khi nào nên xài cái nào -> Dẹp luôn mảng tĩnh, mảng động là đủ. Ai có kinh nghiệm sẽ tự biết quản lý sau
Vậy làm sao để cố định kích thước mảng như cách tạo mảng của các ngôn ngữ khác ạ?
Tạo thì vẫn được, nhưng nó không phải là thứ dành cho người mới học. Vì JS vốn đã không cho mảng tĩnh, nên việc tạo mảng tĩnh nó trở nên bất tiện như tạo mảng động ở các ngôn ngữ khác vậy và chưa chắc có hiệu xuất tốt. Nên nếu bạn muốn học hỏi cách tạo mảng tĩnh ở JS, bạn nên tự tìm hiểu vì nó không dễ để giải thích cũng như hiện thực. Còn nếu công việc bạn yêu cầu, mình khuyến khích bạn tìm thư viện để giải quyết.