Đối với người mới tìm hiểu về lập trình web, có thể bạn sẽ thường nghe nói về 2 ngôn ngữ JavaScript và TypeScript. Hai ngôn ngữ này thường được so sánh với nhau như: Ngôn ngữ nào tốt hơn? Nên học ngôn ngữ nào? Trong bài viết này mình sẽ giúp các bạn hiểu hơn về 2 ngôn ngữ này và giải đáp câu hỏi trên.
JavaScript là gì?
JavaScript là 1 ngôn ngữ lập trình, 1 trong những công nghệ chính để tạo nên trang web. Trang web được tạo nên từ 3 ngôn ngữ chính HTML, CSS và JavaScript. HTML tạo ra nội dung cho trang web, CSS làm đẹp nội dung và JavaScript sẽ làm cho trang web có khả năng tương tác, tính toán.
Hãy tưởng tượng trang web của chúng ta như là “1 con người”. Nếu thiếu đi JavaScript thì trang web sẽ giống như “1 bức tượng” chỉ có hình dạng mà không thể suy nghĩ, hoạt động. Và JavaScript sẽ giúp cho bức tượng có thể suy nghĩ, tính toán và hoạt động tay chân.
Sự phát triển của JavaScript
Cùng với sự phát triển của Internet và Web thì JavaScript cũng phát triển theo. Ngày nay, JavaScript là 1 trong những ngôn ngữ phổ biến nhất thế giới.
Trong những năm đầu của Web thì trang Web thường rất đơn giản, chỉ để hiển thị nội dung (trang blog, trang đọc báo,…) nên JavaScript đối với Web cũng không quan trọng nhiều.
Nhưng các trang Web ngày nay rất hiện đại, chúng không chỉ là những trang web dùng để hiển thị nội dung mà như là 1 ứng dụng (web app) với rất nhiều tính năng.
Hãy nghĩ đến Facebook, bạn có thể làm được rất nhiều thứ trên trang Web của Facebook. Và JavaScript chính là thứ giúp cho những trang Web hiện đại này có được khả năng xử lý và tương tác đó.
Không chỉ dừng lại ở phạm vi trang Web, ngày nay JavaScript còn có thể dùng để tạo ra những ứng dụng Desktop, tạo ra Server. Có câu nói “Bất cứ thứ gì có thể được viết bằng JavaScript, cuối cùng sẽ được viết bằng JavaScript” và câu nói này đang trở thành sự thật, ngày nay các ứng dụng phổ biến cũng được viết bằng JavaScript rất nhiều như Visual Studio Code, Whats App, Microsoft Teams,…
Hạn chế của JavaScript
Do ban đầu trang Web chỉ được dùng để hiển thị nội dung nên việc tính toán hay xử lý rất ít, nên JavaScript được tạo ra với định hướng là phải đơn giản dễ dùng và sử dụng nhanh chóng.
Nhưng ngày nay các chương trình của JavaScript có thể rất lớn và phức tạp. Việc viết các chương trình lớn bằng JavaScript có 1 số khó khăn
- JavaScript chỉ cần viết và chạy, không cần biên dịch. Nên có những lỗi mà chỉ khi chạy chương trình mới biết được. Ví dụ nếu bạn gọi 1 hàm chưa được khai báo, JavaScript sẽ cho rằng bình thường và chỉ khi chạy bạn mới thấy lỗi.
- Biến trong JavaScript có thể có kiểu dữ liệu bất kì. Việc 1 biến ban đầu có kiểu dữ liệu này nhưng đoạn sau lại có kiểu dữ liệu khác làm cho chương trình rất dễ lỗi. Ngoài ra khi đọc lại code đã viết, bạn sẽ không biết rằng lúc trước bạn viết biến này có kiểu gì khiến phải chạy và kiểm tra lại biến đó rất mất thời gian
- Hỗ trợ hướng đối tượng còn hạn chế
- …
TypeScript là gì?
Nhận thấy các khó khăn khi phát triển những chương trình lớn đối với JavaScript nên Microsoft đã tạo ra TypeScript
TypeScript như là 1 phiên bản nâng cao và đầy đủ hơn của JavaScript có thể coi TypeScript là JavaScript với 1 số bổ sung. Code của TypeScript sẽ được biên dịch sang code JavaScript rồi mới chạy được.
Về tính năng thì những gì JavaScript làm được thì TypeScript cũng làm được. TypeScript bổ sung những hạn chế của JavaScript như:
- Xác định kiểu dữ liệu: khai báo 1 biến trong TypeScript phải xác định biến đó kiểu dữ liệu gì. Việc này giúp việc đọc lại code dễ hiểu hơn và tránh 1 số lỗi về sai kiểu dữ liệu
- Tạo ra kiểu dữ liệu mới: Bạn có thể tạo 1 số kiểu dữ liệu có cấu trúc bằng TypeScript dựa trên những kiểu dữ liệu cơ bản. JavaScript cũng hỗ trợ việc này nhưng không mạnh bằng TypeScript
- Phát hiện lỗi lúc code: 1 số lỗi về sai cú pháp, sai kiểu dữ liệu, gọi hàm chưa khai báo.. có thể xác định ngay trong lúc code mà không cần chạy mới biết
- Biên dịch code: Code của TypeScript sẽ được biên dịch sang JavaScript rồi mới chạy nên trình biên dịch code của TypeScript có thể giúp kiểm tra xem code có vấn đề gì không
- Hỗ trợ hướng đối tượng: TypeScript hỗ trợ viết code theo hướng đối tượng rất mạnh mẽ không thua kém các ngôn ngữ thuần hướng đối tượng khác như C++, Java,...
- …
Vậy TypeScript có thay thế JavaScript không?
Chắc chắn là không. Vì TypeScript dựa trên nền tảng bên dưới là JavaScript. Code của TypeScript phải cần biên dịch qua lại JavaScript thì mới hoạt động được.
JavaScript và TypeScript nên chọn ngôn ngữ nào?
Đối với những dự án cỡ vừa và nhỏ thì JavaScript thường được ưu tiên hơn do tính đơn giản và nhanh chóng. Nhưng đối với các dự án lớn thì TypeScript được dùng nhiều hơn do tính chặt chẽ của TypeScript, có thể thấy ở một số dự án lớn như Slack, Teams, Visual Studio Code,… hầu hết đều dùng TypeScript.
Về việc học, JavaScript thường được học trước khi chuyển qua TypeScript. Do JavaScript đơn giản hơn và để hiểu được TypeScript cũng cần có nền tảng JavaScript trước.


.jpg?generation=1665659092647325&alt=media)



.jpg?generation=1665659092647325&alt=media)
