Cách công cụ javascript hoạt động trong trình duyệt
Trong khi CSS đang được phân tích cú pháp và CSSOM được tạo, các nội dung khác, bao gồm cả tệp JavaScript, được tải xuống. Điều này xảy ra nhờ vào Show
5. THỰC HIỆN JAVASCRIPTVì vậy, sau khi chúng tôi nhận được tệp Javascript từ máy chủ, mã được diễn giải, biên dịch, phân tích cú pháp và thực thi. Máy tính không thể hiểu mã Javascript, chỉ trình duyệt mới có thể. Mã JS cần được dịch sang thứ gì đó mà máy tính có thể làm việc được và đây là công việc của công cụ JavascriptCông cụ javascript (đôi khi còn được gọi là Các công cụ JavaScript thường được phát triển bởi các nhà cung cấp trình duyệt web và mọi trình duyệt chính đều có một. Chúng tôi đã nói rằng các trình duyệt được sử dụng nhiều nhất cho đến ngày hôm nay là V8 JavaScriptCore Chakra SpiderMonkey Ban đầu, các công cụ Javascript là những trình thông dịch đơn giản. Các trình duyệt hiện đại mà chúng ta sử dụng ngày nay có khả năng thực hiện một thứ gọi là Biên dịch Thông dịch Biên dịch JIT Một khía cạnh rất quan trọng về biên dịch JIT là nó sẽ biên dịch mã nguồn thành hướng dẫn mã máy của máy đang chạy. Điều này có nghĩa là mã máy kết quả được tối ưu hóa cho kiến trúc CPU của máy đang chạy Nói một cách siêu đơn giản, ba quy trình này có thể được nối lại thành
Ngày nay, ranh giới giữa các điều khoản Lưu ý rằng tôi đã đề cập đến phiên bản Javascript cũ hơn và mới hơn. Các trình duyệt không hỗ trợ các phiên bản ngôn ngữ mới hơn sẽ diễn giải mã trong khi các trình duyệt hỗ trợ sẽ sử dụng một số phiên bản JIT để thực thi mã (các công cụ V8, Chakra JavaScriptCore và SpiderMonkey đều sử dụng JIT). Sự thật là mặc dù Javascript là một ngôn ngữ thông dịch (không cần biên dịch) nhưng hầu hết các trình duyệt ngày nay sẽ sử dụng biên dịch JIT để chạy mã, thay vì thông dịch thuần túy. Mã Javascript được xử lý như thế nàoKhi mã Javascript đi vào công cụ Javascript, nó sẽ được phân tích cú pháp như một bước đầu tiên. Điều này có nghĩa là mã được đọc và trong khi điều này xảy ra, mã được chuyển đổi thành cấu trúc dữ liệu có tên là Giả sử chúng ta có một tệp chứa một chương trình chỉ thực hiện một việc và đó là xác định một biến
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình Đây là cách dòng mã cực kỳ siêu đơn giản này trông giống như một Cây cú pháp trừu tượng (Tôi đang sử dụng @babel/parser-7. 16. 12) Nếu bạn muốn tự chuyển đổi một số Javascript thành Cây cú pháp trừu tượng, bạn có thể sử dụng công cụ này. Kết quả CUỐI CÙNG sau khi viết biến của tôi thực sự lớn hơn nhiều và có nhiều nút hơn được ẩn trong ảnh chụp màn hình Sau khi AST được xây dựng, nó sẽ được dịch sang mã máy và được thực thi ngay lập tức, vì Javascript hiện đại sử dụng trình biên dịch Just-In-Time. Việc thực thi mã này sẽ được thực hiện bởi công cụ Javascript, sử dụng thứ gọi là "ngăn xếp cuộc gọi" JavaScript hoạt động như thế nào trong trình duyệt?Ngược lại, JavaScript không có bước biên dịch. Thay vào đó, trình thông dịch trong trình duyệt sẽ đọc mã JavaScript, diễn giải từng dòng và chạy nó. Các trình duyệt hiện đại hơn sử dụng một công nghệ được gọi là biên dịch Just-In-Time (JIT), biên dịch JavaScript thành mã byte thực thi ngay khi nó sắp chạy
Công cụ JavaScript của trình duyệt là gì?Công cụ JavaScript là một thành phần phần mềm thực thi mã JavaScript . Các công cụ JavaScript đầu tiên chỉ là trình thông dịch, nhưng tất cả các công cụ hiện đại có liên quan đều sử dụng trình biên dịch đúng lúc để cải thiện hiệu suất. Các công cụ JavaScript thường được phát triển bởi các nhà cung cấp trình duyệt web và mọi trình duyệt chính đều có một.
Động cơ V8 hoạt động như thế nào trong trình duyệt?Công cụ V8 có được tốc độ từ quá trình biên dịch mã JS Just in Time (JIT) thành mã máy gốc . Trình thông dịch đánh lửa, một thành phần chính của V8, biên dịch mã JS và tạo mã máy không được tối ưu hóa. Khi chạy, mã máy được phân tích và biên dịch lại để có hiệu suất tối ưu.
Thực thi JavaScript hoạt động như thế nào?Bối cảnh thực thi chứa mã hiện đang chạy và mọi thứ hỗ trợ thực thi mã đó. Trong thời gian chạy Ngữ cảnh thực thi, mã cụ thể được trình phân tích cú pháp phân tích cú pháp, các biến và hàm được lưu trữ trong bộ nhớ, mã byte thực thi được tạo và mã được thực thi |