Thursday, September 23, 2021

Giới thiệu về JavaScript

Giới thiệu về JavaScript

JavaScript là gì?

Ban đầu JavaScript được tạo ra để “làm cho các trang web trở nên sống động”.

Các chương trình trong ngôn ngữ này được gọi là script . Chúng có thể được viết ngay trong HTML của trang web và chạy tự động khi trang tải.

Các tập lệnh được cung cấp và thực thi dưới dạng văn bản thuần túy. Chúng không cần chuẩn bị hoặc biên dịch đặc biệt để chạy.

Về khía cạnh này, JavaScript rất khác với một ngôn ngữ khác được gọi là Java .

Tại sao nó được gọi là Java Script?
Khi JavaScript được tạo ra, ban đầu nó có tên khác: “LiveScript”. Nhưng Java rất phổ biến vào thời điểm đó, vì vậy người ta quyết định rằng việc định vị một ngôn ngữ mới là “em trai” của Java sẽ có ích.

Nhưng khi nó phát triển, JavaScript đã trở thành một ngôn ngữ độc lập hoàn toàn với đặc điểm kỹ thuật riêng của nó được gọi là ECMAScript , và bây giờ nó không có mối quan hệ nào với Java cả.
Ngày nay, JavaScript có thể thực thi không chỉ trong trình duyệt mà còn trên máy chủ hoặc thực sự trên bất kỳ thiết bị nào có chương trình đặc biệt gọi là JavaScript engine .

Trình duyệt có một công cụ nhúng đôi khi được gọi là “máy ảo JavaScript”.

Các động cơ khác nhau có “tên mã” khác nhau. Ví dụ:

  • V8 - trong Chrome và Opera.
  • SpiderMonkey - trong Firefox.
  • … Có những tên mã khác như “Chakra” cho IE, “JavaScriptCore”, “Nitro” và “SquirrelFish” cho Safari, v.v.

Các thuật ngữ trên rất nên nhớ vì chúng được sử dụng trong các bài báo dành cho nhà phát triển trên internet. Chúng tôi cũng sẽ sử dụng chúng. Ví dụ: nếu “một tính năng X được V8 hỗ trợ”, thì nó có thể hoạt động trong Chrome và Opera.

Cơ chế hoạt động như thế nào?

Cơ chế rất phức tạp. Nhưng những điều cơ bản là dễ dàng.

  • Công cụ (được nhúng nếu đó là một trình duyệt) đọc (“phân tích cú pháp”) tập lệnh.
  • Sau đó, nó chuyển đổi (“biên dịch”) tập lệnh sang ngôn ngữ máy.
  • Và sau đó mã máy chạy, khá nhanh.
  • Động cơ áp dụng tối ưu hóa ở mỗi bước của quy trình. Nó thậm chí còn xem tập lệnh đã biên dịch khi nó chạy, phân tích dữ liệu chạy qua nó và tối ưu hóa hơn nữa mã máy dựa trên kiến ​​thức đó.

JavaScript trong trình duyệt có thể làm gì?
JavaScript hiện đại là một ngôn ngữ lập trình “an toàn”. Nó không cung cấp quyền truy cập cấp thấp vào bộ nhớ hoặc CPU, vì ban đầu nó được tạo cho các trình duyệt không yêu cầu.


Khả năng của JavaScript phụ thuộc rất nhiều vào môi trường mà nó đang chạy. Ví dụ: Node.js hỗ trợ các hàm cho phép JavaScript đọc / ghi các tệp tùy ý, thực hiện các yêu cầu mạng, v.v.

JavaScript trong trình duyệt có thể thực hiện mọi thứ liên quan đến thao tác trang web, tương tác với người dùng và máy chủ web.

Ví dụ: JavaScript trong trình duyệt có thể:

  • Thêm HTML mới vào trang, thay đổi nội dung hiện có, sửa đổi kiểu.
  • Phản ứng với hành động của người dùng, chạy khi nhấp chuột, di chuyển con trỏ, nhấn phím.
  • Gửi yêu cầu qua mạng tới các máy chủ từ xa, tải xuống và tải lên các tệp (cái gọi là công nghệ AJAX và COMET ).
  • Nhận và đặt cookie, đặt câu hỏi cho khách truy cập, hiển thị tin nhắn.
  • Ghi nhớ dữ liệu ở phía máy khách (“bộ nhớ cục bộ”).


JavaScript KHÔNG THỂ làm được gì trong trình duyệt?

Khả năng của JavaScript trong trình duyệt bị giới hạn vì lợi ích của sự an toàn của người dùng. Mục đích là để ngăn chặn một trang web xấu truy cập thông tin cá nhân hoặc gây hại cho dữ liệu của người dùng.

Ví dụ về những hạn chế như vậy bao gồm:

JavaScript trên một trang web không được đọc / ghi các tệp tùy ý trên đĩa cứng, sao chép chúng hoặc thực thi các chương trình. Nó không có quyền 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 hiện đại cho phép nó hoạt động với các tệp, nhưng 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 một số hành động nhất định, chẳng hạn như “thả” tệp vào cửa sổ trình duyệt hoặc chọn tệp đó qua <input>thẻ.

Có nhiều cách để tương tác với máy ảnh / micrô và các thiết bị khác, nhưng chúng yêu cầu sự cho phép rõ ràng của người dùng. Vì vậy, một trang hỗ trợ JavaScript không thể lén lút kích hoạt camera web, quan sát môi trường xung quanh và gửi thông tin đến NSA .

Các tab / cửa sổ khác nhau thường không biết về nhau. Đôi khi chúng làm như vậy, chẳng hạn như khi một cửa sổ sử dụng JavaScript để mở cửa sổ kia. Nhưng ngay cả trong trường hợp này, JavaScript từ một trang có thể không truy cập trang kia nếu chúng đến từ các trang khác nhau (từ một miền, giao thức hoặc cổng khác).

Đây được gọi là “Chính sách Xuất xứ Giống nhau”. Để giải quyết vấn đề đó, cả hai trang phải đồng ý trao đổi dữ liệu và chứa một mã JavaScript đặc biệt để xử lý nó. Chúng tôi sẽ đề cập đến vấn đề đó trong hướng dẫn.

Hạn chế này, một lần nữa, vì sự an toàn của người dùng. Một trang http://anysite.commà người dùng đã mở từ đó không được phép truy cập vào tab trình duyệt khác bằng URL http://gmail.comvà lấy cắp thông tin từ đó.

JavaScript có thể dễ dàng giao tiếp qua mạng với máy chủ nơi trang hiện tại đến từ đó. Nhưng khả năng nhận dữ liệu từ các trang web / miền khác của nó bị tê liệt. Mặc dù có thể, nó yêu cầu thỏa thuận rõ ràng (thể hiện trong tiêu đề HTTP) từ phía từ xa. Một lần nữa, đó là một giới hạn an toàn.
Các giới hạn như vậy không tồn tại nếu JavaScript được sử dụng bên ngoài trình duyệt, chẳng hạn như trên máy chủ. Các trình duyệt hiện đại cũng cho phép plugin / tiện ích mở rộng có thể yêu cầu quyền mở rộng.

Điều gì làm cho JavaScript trở nên độc đáo?

Có ít nhất ba điều tuyệt vời về JavaScript:

  • Tích hợp hoàn toàn với HTML / CSS.
  • Những điều đơn giản được thực hiện một cách đơn giản.
  • Hỗ trợ bởi tất cả các trình duyệt chính và được bật theo mặc định.
  • JavaScript là công nghệ trình duyệt duy nhất kết hợp ba thứ này.


Đó là điều làm cho JavaScript trở nên độc đáo. Đó là lý do tại sao nó là công cụ phổ biến nhất để tạo giao diện trình duyệt.

Điều đó nói rằng, JavaScript cũng cho phép tạo máy chủ, ứng dụng di động, v.v.

Ngôn ngữ “hơn” JavaScript

Cú pháp của JavaScript không phù hợp với nhu cầu của mọi người. Những người khác nhau muốn các tính năng khác nhau.

Đó là điều được mong đợi, bởi vì các dự án và yêu cầu là khác nhau đối với tất cả mọi người.

Vì vậy, thời gian gần đây rất nhiều ngôn ngữ mới xuất hiện, được transpiled (chuyển đổi) để Javascript trước khi họ chạy trong trình duyệt.

Các công cụ hiện đại làm cho quá trình chuyển đổi diễn ra rất nhanh chóng và minh bạch, thực sự cho phép các nhà phát triển viết mã bằng một ngôn ngữ khác và tự động chuyển đổi nó một cách “bí mật”.

Ví dụ về các ngôn ngữ như vậy:

  • CoffeeScript là một “đường cú pháp” cho JavaScript. Nó giới thiệu cú pháp ngắn hơn, cho phép chúng ta viết mã rõ ràng và chính xác hơn. Thông thường, các nhà phát triển Ruby thích nó.
  • TypeScript tập trung vào việc bổ sung “cách đánh dữ liệu nghiêm ngặt” để đơn giản hóa việc phát triển và hỗ trợ các hệ thống phức tạp. Nó được phát triển bởi Microsoft.
  • Flow cũng bổ sung tính năng nhập dữ liệu, nhưng theo một cách khác. Được phát triển bởi Facebook.
  • Dart là một ngôn ngữ độc lập có công cụ riêng chạy trong môi trường không có trình duyệt (như ứng dụng dành cho thiết bị di động), nhưng cũng có thể được chuyển sang JavaScript. Được phát triển bởi Google.
  • Brython là một trình chuyển tiếp Python sang JavaScript cho phép viết các ứng dụng bằng Python thuần túy mà không cần JavaScript.
  • Kotlin là một ngôn ngữ lập trình hiện đại, ngắn gọn và an toàn, có thể nhắm mục tiêu trình duyệt hoặc Node.

Có nhiều. Tất nhiên, ngay cả khi chúng ta sử dụng một trong các ngôn ngữ chuyển đổi, chúng ta cũng nên biết JavaScript để thực sự hiểu những gì chúng ta đang làm.

Tóm lược
Ban đầu JavaScript được tạo ra như một ngôn ngữ chỉ dành cho trình duyệt, nhưng hiện tại nó cũng được sử dụng trong nhiều môi trường khác.
Ngày nay, JavaScript có một vị trí duy nhất là ngôn ngữ trình duyệt được sử dụng rộng rãi nhất với sự tích hợp đầy đủ trong HTML / CSS.
Có nhiều ngôn ngữ được “chuyển đổi” sang JavaScript và cung cấp một số tính năng nhất định. Bạn nên xem qua chúng, ít nhất là trong thời gian ngắn, sau khi thành thạo JavaScript.

No comments:

Post a Comment