Javascript là ngôn ngữ gì thông dịch hay biên dịch năm 2024

Chắc hẳn chúng ta đã quen với rất nhiều ngôn ngữ như C, C++, Java, Python, Ruby, JavaScript, PHP, Swift, Kotlin điểm chung chúng là đều là ví dụ cho "High-level programming language" (Ngôn ngữ lập trình bậc cao)

Nhắc đến "Ngôn ngữ lập trình bậc cao" chắc các bạn cũng suy đoán được sẽ còn những "Low-level programming language" (Ngôn ngữ lập trình bậc thấp) đôi khi được gọi là "Machine language" (Ngôn ngữ máy) hay "Assembly language" (hợp ngữ) Một cách đơn giản, chúng ta có thể hiểu rằng máy tính chỉ có thể thực hiện các chương trình được viết bằng ngôn ngữ bậc thấp. Do đó, các chương trình viết bằng ngôn ngữ bậc cao cần được xử lý trước khi chạy. Bước này tốn thêm thời gian và là một hạn chế nhỏ của các ngôn ngữ bậc cao.

Tuy nhiên, lợi ích lại rất lớn:

  1. "Dễ lập trình" việc lập trình bằng ngôn ngữ bậc cao dễ hơn nhiều Chương trình được viết bằng ngôn ngữ bậc cao được viết "Nhanh hơn", nội dung chương trình "ngắn hơn" dễ "đọc" hơn và nhiều khả năng "chính xác hơn"
  2. "Khả Chuyển" các ngôn ngữ bậc cao có tính "portability" (khả chuyển) được hiểu theo nghĩa chạy được trên nhiều hệ máy tính khác nhau mà ít hoặc không cần phải sửa đổi (trong khi đó các ngôn ngữ bậc thấp chỉ có thể chạy trên một loại máy tính và phải được viết lại nếu muốn chạy trên các hệ máy khác)

Vì những lợi ích này, hầu hết các chương trình được viết bằng ngôn ngữ bậc cao. Ngôn ngữ bậc thấp được sử dụng chỉ cho các ứng dụng đặc biệt.

Ví dụ, trong lĩnh vực phát triển phần mềm nhúng, lập trình viên có thể sử dụng "ngôn ngữ hợp ngữ" để viết mã cho các vi điều khiển nhúng trong các thiết bị điện tử như ô tô, thiết bị y tế hoặc thiết bị gia dụng thông minh.

Vậy làm sao để máy tính hiểu các ngôn ngữ bậc cao ?

Có hai loại chương trình có nhiệm vụ chuyển đổi ngôn ngữ bậc cao thành dạng ngôn ngữ bậc thấp: "Trình thông dịch" và "Trình biên dịch."

  • "Trình thông dịch" (Interpreter) là một chương trình máy tính, có nhiệm vụ đọc một chương trình bậc cao và thực hiện nó theo đúng những gì chương trình chỉ định. Nó xử lý chương trình một cách "dần dần" theo "tuần tự", nghĩa là đọc câu lệnh đến đâu thì thực hiện đến tính toán tới đó
  • "Trình biên dịch" (Compiler) : là chương trình máy tính , có nhiệm vụ đọc chương trình và dịch nó "hoàn toàn" trước khi thực hiện bất kì một câu lệnh nào trong chương trình chương trình sau khi được dịch sẽ gọi là "Object code" (mã đối tượng) hoặc "Executable program"(chương trình chạy)

Thông thường máy sẽ thực hiện biên dịch trước sau đó mới chạy mã lênh đã biên dịch. Khi đó, trương trình bậc cao sẽ được gọi là "Source Code" (Mã nguồn)

Mình sẽ lấy ví dụ về ngôn ngữ Java. Chương trình java vừa được biên dịch lẫn thông dịch. Thay vì chuyển trương trình sang ngôn ngữ máy, trình biên dịch Java phát sinh ra "Java bytecode" "mã byte". Mã byte dễ thông dịch (và thông dịch cũng nhanh), giống như mã máy, song nó còn "khả chuyển", như một ngôn ngữ bậc cao . Vì vậy ta có thể biên dịch một chương trình trên máy này, đưa mã byte sang máy khác, sau đó thông dịch mã byte này trên máy mới. ('write once and run anywhere')

Thực tế trong nhập môn java ta có thể thấy file "mã nguồn" x.java Trình biên dịch đọc mã lệnh rồi phát sinh byte code Java file x.class. Quá trình biên dịch này sẽ kiểm tra cú pháp và kiểm tra lỗi trong mã nguồn ,lúc này trình thông dịch java sẽ đọc byte code này và đưa ra kết quả trên màn hình console hoặc ghi vào một tệp nếu bạn đã cài đặt mã để làm như vậy.

Mặc dù quá trình này có vẻ phức tạp, nhưng đa số các môi trường phát triển chương trình đều giúp bạn tự động thực hiện các bước kể trên. Thông thường bạn sẽ chỉ phải viết một chương trình rồi ấn nút hoặc gõ vào một câu lệnh để biên dịch và chạy. Tuy nhiên, Ta vẫn cần biết những bước nào đang được máy thực hiện ngầm, để ngỡ có trục trặc thì ta có thể hình dung ra sai ở khấu nào

JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay. Vậy ngôn ngữ JavaScript có đặc điểm gì khác biệt, được ứng dụng như thế nào? Hãy tham khảo trong bài viết dưới đây.

Javascript là ngôn ngữ gì thông dịch hay biên dịch năm 2024
JavaScript được ứng dụng rộng rãi trong phát triển web, ứng dụng di động và trò chơi, khiến nó trở thành một trong những ngôn ngữ lập trình có giá trị và phổ biến nhất hiện nay.

Ngôn ngữ lập trình JavaScript là gì?

JavaScript là ngôn ngữ lập trình hoặc tập lệnh cho phép nhà phát triển triển khai tính năng phức tạp trên các trang web. Nhờ vậy, một trang web thực hiện nhiều việc hơn là chỉ hiển thị thông tin tĩnh cho người dùng, tăng khả năng tương tác.

Hỗ trợ trang web cập nhật nội dung kịp thời, hoạt hình 2D/đồ họa 3D, tự động cuộn video, quảng cáo sinh động, màu sắc phần tử thay đổi,... chính là hiệu ứng của ngôn ngữ JavaScript. Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trong những công nghệ cốt lõi của World Wide Web (www).

Bên cạnh JavaScript, Ngôn ngữ đánh dấu siêu văn bản (HTML) và Ngôn ngữ định kiểu theo tầng (CSS) cũng là hai ngôn ngữ cùng tạo ra trải nghiệm người dùng tích cực trên trang web. Trong đó:

  • HTML sử dụng để cấu trúc và tạo ý nghĩa cho nội dung web, chẳng hạn như xác định đoạn văn, tiêu đề, bảng dữ liệu hoặc nhúng hình ảnh và video vào trang.
  • CSS sử dụng để định kiểu dáng cho nội dung HTML, ví dụ: Đặt màu nền và phông chữ, cũng như bố trí nội dung thành nhiều cột, hàng.
  • JavaScript cho phép cập nhật nội dung động một cách linh hoạt, điều khiển đa phương tiện,...

Ngôn ngữ JavaScript dùng để làm gì?

Ngôn ngữ JavaScript cốt lõi phía máy khách bao gồm một số tính năng lập trình phổ biến, cho phép nhà phát triển thực hiện những việc như:

  • Lưu trữ giá trị hữu ích bên trong các biến. Ví dụ, yêu cầu nhập một tên mới và lưu tên đó vào một biến gọi là “name”.
  • Thao tác trên đoạn văn bản (được gọi là "chuỗi" (strings) trong lập trình). Ví dụ, lấy chuỗi "Người chơi 1: " và nối nó với biến name để tạo nhãn văn bản hoàn chỉnh: "Người chơi 1: Chris".
  • Chạy mã để phản hồi sự kiện nhất định xảy ra trên một trang web.

Điều thú vị là chức năng được xây dựng dựa trên ngôn ngữ JavaScript phía máy khách. Giao diện lập trình ứng dụng (API - Application programming interface) sẽ cung cấp cho nhà phát triển khả năng bổ sung, sử dụng trong mã JavaScript.

API là tập hợp khối xây dựng mã (code) được tạo sẵn, cho phép nhà phát triển triển khai các chương trình mà nếu không có nó sẽ khó hoặc không thể thực hiện được.

Đối với lập trình, sử dụng API giống như làm đồ nội thất khi xây nhà. Việc lấy các tấm vật liệu đã cắt và nối chúng lại với nhau để tạo thành một chiếc giá sách sẽ dễ dàng hơn nhiều so với việc thiết kế mới từ đầu, tìm chất liệu gỗ, cắt dán,... để tạo ra thành phẩm hoàn chỉnh.

API thường được phân chia thành hai loại chính:

API trình duyệt (Browser APIs) được tích hợp vào trình duyệt web và có thể hiển thị dữ liệu từ môi trường máy tính xung quanh hoặc thực hiện những việc phức tạp hữu ích. Ví dụ:

  • DOM (Document Object Model) - Mô hình đối tượng tài liệu API cho phép thao tác HTML và CSS, tạo, xóa và thay đổi HTML, tự động áp dụng các kiểu mới cho trang,... Mỗi khi người dùng nhìn thấy một cửa sổ bật lên xuất hiện trên một trang hoặc một số nội dung mới, đó là DOM đang hoạt động.

Javascript là ngôn ngữ gì thông dịch hay biên dịch năm 2024

Tạo mô hình đối tượng tài liệu DOM - Ảnh: Internet

  • Geolocation API lấy thông tin địa lý. Đây là cách Google Maps có thể tìm thấy vị trí theo yêu cầu và thể hiện vị trí đó trên bản đồ.
  • API Canvas Và WebGL cho phép tạo đồ họa hoạt hình 2D và 3D.
  • API Âm thanh và Video như HTMLMediaElement và WebRTC cho phép thực hiện những điều thực sự thú vị với đa phương tiện, chẳng hạn như phát âm thanh và video ngay trong trang web hoặc lấy video từ webcam của người dùng và hiển thị trên máy tính của người khác.

API của bên thứ ba không được tích hợp vào trình duyệt theo mặc định, thường phải lấy code và thông tin người dùng từ trên Web. Ví dụ:

  • API Twitter cho phép thực hiện những việc như hiển thị các bài đăng mới nhất trên bảng tin cá nhân.
  • API Google Maps và API OpenStreetMap cho phép nhúng bản đồ tùy chỉnh vào trang web và các chức năng khác tương tự.

JavaScript hoạt động như thế nào?

Khi tải một trang web trong trình duyệt, bạn đang chạy mã của mình (HTML, CSS và JavaScript) bên trong môi trường thực thi (tab trình duyệt). Đây giống như một nhà máy lấy nguyên liệu thô (mã) và đưa ra sản phẩm (trang web).

Một cách sử dụng JavaScript rất phổ biến là sửa đổi động HTML và CSS để cập nhật giao diện người dùng, thông qua DOM API (như đã đề cập ở trên).

Lưu ý rằng mã trong tài liệu web thường được tải và thực thi theo thứ tự xuất hiện trên trang. Lỗi có thể xảy ra nếu JavaScript được tải và chạy trước HTML và CSS mà nó dự định sửa đổi.

Bảo mật trình duyệt

Mỗi tab trình duyệt có một nhóm riêng để chạy mã trong đó. Các nhóm này được gọi là "môi trường thực thi" - execution environments theo thuật ngữ kỹ thuật.

Điều này có nghĩa là trong hầu hết các trường hợp, mã trong mỗi tab được chạy hoàn toàn riêng biệt và không thể trực tiếp ảnh hưởng đến mã trong tab khác hoặc trên trang web khác. Đây là một biện pháp bảo mật tốt.

Thứ tự chạy JavaScript

Khi trình duyệt gặp một khối JavaScript, nó thường chạy theo thứ tự từ trên xuống dưới. Điều này có nghĩa là nhà phát triển cần phải cẩn thận về thứ tự sắp xếp mọi thứ. Đây là một trong những lỗi phổ biến, cần lưu ý khi lập trình để đảm bảo các đối tượng được tham chiếu trong mã tồn tại trước khi cố gắng thực hiện các thao tác với chúng.

Mã được giải thích và biên dịch

Trong các ngôn ngữ thông dịch, mã được chạy từ trên xuống dưới và kết quả chạy mã được trả về ngay lập tức. Nhà lập trình không cần phải chuyển mã sang dạng khác trước khi trình duyệt chạy mã đó. Mã được nhận ở dạng văn bản thân thiện với người lập trình và được xử lý trực tiếp.

Mặt khác, các ngôn ngữ được biên dịch sang dạng khác trước khi chúng được máy tính chạy. Trình duyệt web nhận mã JavaScript ở dạng văn bản gốc và chạy tập lệnh từ đó.

Hầu hết các trình thông dịch JavaScript hiện đại sử dụng kỹ thuật biên dịch đúng lúc để cải thiện hiệu suất. Mã nguồn JavaScript được biên dịch sang định dạng nhị phân, trong khi tập lệnh đang được sử dụng để chạy nhanh nhất có thể. Tuy nhiên, JavaScript vẫn được coi là ngôn ngữ thông dịch vì quá trình biên dịch được xử lý trong thời gian chạy chứ không phải trước.

Mã phía máy chủ và phía máy khách

Mã phía máy khách là mã được chạy trên máy tính của người dùng. Khi một trang web được xem, mã phía máy khách của trang đó sẽ được tải xuống, sau đó chạy và hiển thị bởi trình duyệt.

Mặt khác, mã phía máy chủ được chạy trên máy chủ, sau đó kết quả của nó được tải xuống và hiển thị trên trình duyệt. Ví dụ về các ngôn ngữ web phía máy chủ phổ biến bao gồm PHP, Python, Ruby, ASP.NET và thậm chí cả JavaScript. JavaScript cũng có thể được sử dụng làm ngôn ngữ phía máy chủ, chẳng hạn như trong môi trường Node.js phổ biến.

Mã động (Dynamic) và mã tĩnh (Static)

Từ động (dynamic) được sử dụng để mô tả cả ngôn ngữ JavaScript phía máy khách và phía máy chủ. Nó đề cập đến khả năng cập nhật của trang web/ứng dụng để hiển thị những thứ khác nhau trong nhiều trường hợp khác nhau, tạo ra nội dung mới theo yêu cầu.

Mã phía máy chủ tự động tạo nội dung mới trên máy chủ, trong khi JavaScript phía máy khách tự động tạo nội dung mới bên trong trình duyệt trên máy khách.

Một trang web không có nội dung cập nhật động được gọi là trang tĩnh - nó chỉ hiển thị cùng một nội dung mọi lúc.

Javascript là ngôn ngữ gì thông dịch hay biên dịch năm 2024

Ngôn ngữ JavaScript tăng tính tương tác giữa website với người dùng - Ảnh: Internet

Làm thế nào để thêm ngôn ngữ lập trình JavaScript vào trang web?

JavaScript được áp dụng cho trang HTML theo cách tương tự như CSS. Trong khi CSS sử dụng các phần tử để áp dụng bảng định kiểu bên ngoài và phần tử