JavaScript là gì? Tại sao lập trình web ai cũng cần đến JavaScript

Javascript là gì?

Javascript ra mắt năm 1995, là cách thức để thêm các chương trình vào trang web trong trình duyệt Netscape Navigator, sau đó nó được thông qua bởi các trình duyệt web đồ họa. Nó tạo ra các ứng dụng web hiện đại giúp người dùng có thể tương tác trực tiếp mà không cần trang web phải tải lại.
JavaScript được ra mắt với tên đầu tiên là LiveScript, sau đó đổi tên thành JavaScript. Một điều quan trọng cần lưu ý JavaScript không có liên quan gì đến ngôn ngữ lập trình Java. Khi Javascript ra mắt, ngôn ngữ Java đã có một thị trường lớn và rất phổ biến, có nhiều người nghĩ JavaScript đã mượn danh tiếng của Java để tiếp thị nhưng thực tế hiện nay JavaScript đã trở thành một ngôn ngữ phổ biến nhất.

Sau khi được nhiều bên thông qua ngoài Netscape, một tài liệu tiêu chuẩn đã được viết ra nhằm mô tả cách thức hoạt động của JavaScript để đảm bảo các ứng dụng hỗ trợ cùng một ngôn ngữ nói đến là Javascript. Tổ chức quốc tế ECMA viết ra tài liệu chuẩn này và đặt tên là ECMAScript, trong thực tế các thuật ngữ ECMAScript và JavaScript có thể sử dụng hoán đổi cho nhau.

Hiện tại, JavaScript đã có thể chạy được không chỉ trong trình duyệt mà có thể chạy trên các máy chủ hoặc thiết bị chạy chương trình được gọi là JavaScript engine. Trình duyệt đã được tính hợp sẵn bộ máy JavaScript này, còn được gọi là JavaScript virtual machine. Có nhiều các JavaScript engine khác nhau, kể đến như:

  • V8 trong Chrome và Opera
  • SpiderMonkey trong Firefox
  • Trident, Chakra trong các phiên bản khác nhau của IE
  • ChakraCore trong Microsoft Edge.

Các JavaScript engine thực hiện các công việc sau:

  1. Các engine sẽ thực hiện phân tích cú pháp JavaScript
  2. Engine sẽ chuyển đổi các kịch bản này thành ngôn ngữ máy.
  3. Cuối cùng các chương trình ngôn ngữ máy sẽ chạy dễ dàng.

JavaScript engine thực hiện tối ưu hóa các công đoạn xử lý, do vậy việc thực thi mã là cực kỳ nhanh chóng.

JavaScript có thể làm gì?

Ngôn ngữ JavaScript rất “an toàn”, nó không truy nhập được vào bộ nhớ ở mức thấp hay CPU, nó được khởi tạo bởi trình duyệt web nên không cần yêu cầu đó. Khả năng của JavaScript phụ thuộc vào môi trường chạy, ví dụ Node.js hỗ trợ các hàm cho phép JavaScript đọc/ghi các file một cách tùy ý, thực hiện các yêu cầu từ mạng máy tính… JavaScript trong trình duyệt, có thể làm mọi thứ liên quan đến thao tác trên trang web, tương tác với người dùng và máy chủ web. JavaScript trong trình duyệt có thể làm những việc sau:
+ Thêm mã HTML vào trang, thay đổi nội dung đang có, thay đổi style của trang.
+ Phản ứng với các hành động của người dùng như click chuột, ấn một phím…
+ Gửi request thông qua mạng đến một máy chủ ở xa, tải về hoặc tải lên các file (Kỹ thuật Ajax, Comet…)
+ Lấy hoặc thiết lập các mẩu thông tin cookie, hiển thị các câu hỏi với người dùng, hiển thị các lời nhắn…
+ Ghi nhớ dữ liệu vào bộ nhớ phía client, ví dụ local storage.

JavaScript trong trình duyệt không thể làm những gì?

Khả năng của JavaScript trong trình duyệt được giới hạn vì sự an toàn của người dùng, mục đích của việc này là ngăn chặn các đoạn mã độc hại truy cập thông tin cá nhân, làm ảnh hưởng đến dữ liệu người dùng. Ví dụ về các hạn chế này như:
+ JavaScript trên các trang web không thể đọc/ghi các file trên ổ cứng, sao chép hoặc thực thi các ứng dụng, nó không được phép truy cập trực tiếp vào các chức năng của hệ điều hành.
+ Các trình duyệt mới hiện nay đã cho phép JavaScript làm việc với file, tuy nhiên quyền truy cập bị hạn chế và chỉ được cung cấp nếu người dùng thực hiện các hành động, ví dụ như thả một tệp vào cửa sổ trình duyệt hoặc chọn nó thông qua một thẻ <input>
+ Có nhiều cách để tương tác với camera hoặc micro và các thiết bị khác nhưng chúng cần được cho phép bởi người dùng. Một trang web có JavaScript không thể lén kích hoạt camera, quan sát môi trường xung quanh và gửi thông tin đi.
+ Các tab/cửa sổ khác nhau sẽ không biết về nhau nếu các trang không cùng tên miền , giao thức và cổng. Nó được gọi là chính sách cùng nguồn gốc (Same Origin Policy) quy định về việc trao đổi dữ liệu giữa hai trang thông qua JavaScript. Hạn chế này đảm bảo an toàn cho người dùng, một trang từ http://anysite.com mà người dùng đã mở không được truy cập đến cửa sổ khác với đường dẫn http://allaravel.com và lấy cắp thông tin từ đó.
+ JavaScript có thể dễ dàng giao tiếp đến máy chủ thông qua mạng máy tính nếu máy chủ chứa trang hiện tại nhưng không thể nhận dữ liệu từ các trang web/ tên miền khác, tuy nhiên nó có thể yêu cầu việc này bằng cách gửi thông tin trong header HTTP.

Các giới hạn trên không hiệu lực nếu JavaScript chạy ở ngoài trình duyệt, ví dụ Node.js. Các trình duyệt hiện nay cũng cho phép cài đặt các plugin hoặc các tiện ích mở rộng để cho phép thực thi nhiều quyền hơn.

Điều gì làm cho JavaScript là duy nhất

Có 3 điều làm cho JavaScript trở lên tuyệt hảo như vậy:
+ Tích hợp hoàn toàn với HTML/CSS.
+ Thực hiện công việc một cách đơn giản.
+ Được hỗ trợ bởi tất cả các trình duyệt và mặc định được cho phép chạy.
Với 3 điều trên, chỉ duy nhất có JavaScript làm được mà không có một công nghệ nào khác, nó làm nên sự thống trị duy nhất của JavaScript. Chính vì vậy JavaScript là công cụ phổ biến nhất để tạo ra các giao diện trong trình duyệt.

Các ngôn ngữ khác trên JavaScript

Cú pháp trong JavaScript không phù hợp với tất cả mọi người, mỗi người lại muốn các tính năng khác nhau. Bởi vậy xuất hiện nhiều các ngôn ngữ khác ở tầng trên, được chuyển đổi thành JavaScript trước khi được thực thi trong trình duyệt. Quá trình chuyển đổi mã nguồn diễn ra rất nhanh và trong suốt do đó các nhà phát triển có thể sử dụng như những ngôn ngữ mới. Chúng ta điểm qua vài ngôn ngữ như vây:
+ CoffeeScript là ngôn ngữ có cú pháp rất ngắn gọn, cho phép viết mã nguồn chính xác và rõ ràng hơn, các nhà phát triển trên ngôn ngữ Ruby thích điều này.
+ TypeScript thì tập trung hơn vào việc kiểm soát chặt chẽ dữ liệu nhập vào và phát triển đơn giản cũng như hỗ trợ các hệ thống phức tạp, nó được phát triển bởi Microsoft.
+ Dart là một ngôn ngữ độc lập với engine riêng được cung cấp bởi Google nhằm thay thế JavaScript, tuy nhiên đến nay các trình duyệt lại yêu cầu engine này phải chuyển đổi sang JavaScript.
Có rất nhiều các ngôn ngữ ở tầng trên JavaScript tuy nhiên cuối cùng nó cũng được chuyển đổi sang JavaScript do vậy chúng ta cần có sự am hiểu về JavaScript để thực hiện chính xác hơn.

Tổng kết

+ JavaScript được đưa ra ngay từ đầu là ngôn ngữ chỉ dùng cho trình duyệt web nhưng hiện nay nó đã có thể sử dụng trên các môi trường khác.
+ Ở thời điểm hiện tại, JavaScript có vị trí độc tôn và được thông qua là ngôn ngữ trình duyệt có thể tích hợp hoàn toàn với HTML/CSS.
+ Có nhiều các ngôn ngữ chuyển đổi sang JavaScript trong quá trình thực thi và cung cấp các tính năng nhất định, có thể chúng ta sẽ sử dụng các ngôn ngữ này sau khi đã nắm bắt được JavaScript.

Add Comment