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