Câu hỏi phỏng vấn JavaScript Medium
Lời hứa là một cách để xử lý các hoạt động không đồng bộ trong JavaScript. Nó đại diện cho giá trị của một hoạt động không đồng bộ. Các lời hứa đã được đưa ra để giải quyết vấn đề thực hiện và xử lý mã không đồng bộ trước các lời hứa chúng tôi đang sử dụng các cuộc gọi lại Sự cố với phương pháp này nếu chúng tôi có một thao tác không đồng bộ khác bên trong cuộc gọi lại và một thao tác khác. Chúng ta sẽ có một đoạn mã lộn xộn và không thể đọc được. Mã này được gọi là Địa ngục gọi lại Nếu chúng tôi sử dụng lời hứa trong mã này, nó sẽ dễ đọc hơn, dễ hiểu và dễ bảo trì hơn Lời hứa có 3 trạng thái khác nhau Đang chờ xử lý - Trạng thái ban đầu của một lời hứa. Kết quả của lời hứa vẫn chưa được biết vì hoạt động chưa được hoàn thành Đã thực hiện — Thao tác không đồng bộ đã hoàn tất và thành công với giá trị kết quả Bị từ chối — Thao tác không đồng bộ không thành công và có lý do tại sao không thành công Đã giải quyết - Nếu lời hứa đã được thực hiện hoặc bị từ chối Hàm tạo Promise có hai tham số lần lượt là các hàm Chúng ta có thể tạo một hàm trợ giúp để chuyển đổi một hoạt động không đồng bộ với một cuộc gọi lại thành lời hứa. Nó hoạt động giống như chức năng tiện ích promisify từ mô-đun lõi nút. Mẫu chữ là một cách mới để tạo chuỗi trong JavaScript. Chúng tôi có thể tạo Mẫu chữ bằng cách sử dụng ký hiệu backtick hoặc back-quote Trong phiên bản ES5, chúng ta cần thoát khỏi Trong phiên bản ES5, chúng tôi cần thêm In the ES5 version, If we need to add an expression or value in a string we need to use the + or string concatenation operator. In Template Literals, we can embed an expression using ${expr} which makes it cleaner than the ES5 version. Câu hỏi số 3. Phá hủy đối tượng là gì?Phá hủy đối tượng là một cách mới và rõ ràng hơn để nhận hoặc trích xuất các giá trị từ một đối tượng hoặc một mảng Giả sử chúng ta có một đối tượng trông như thế này Cách cũ để lấy các thuộc tính từ một đối tượng là chúng ta tạo một biến có cùng tên với thuộc tính của đối tượng. Cách này hơi rắc rối vì chúng tôi đang tạo một biến mới cho mọi thuộc tính. Hãy tưởng tượng chúng ta có một đối tượng lớn với rất nhiều thuộc tính và phương thức sử dụng cách này để trích xuất các thuộc tính sẽ rất khó chịu Nếu chúng ta sử dụng phá hủy đối tượng, nó sẽ sạch hơn và mất một ít thời gian hơn so với cách cũ. Cú pháp để phá hủy đối tượng là nếu chúng ta lấy các thuộc tính trong một đối tượng, chúng ta sử dụng Nếu chúng ta muốn thay đổi tên biến mà chúng ta muốn trích xuất, chúng ta sử dụng cú pháp Chúng ta cũng có thể có các giá trị mặc định khi phá hủy. Trong ví dụ này, nếu thuộc tính async/await là cách mới để viết mã không đồng bộ hoặc mã không chặn trong JavaScript. Nó được xây dựng dựa trên Promises. Nó làm cho việc viết mã không đồng bộ trở nên dễ đọc và gọn gàng hơn Sử dụng lời hứa Sử dụng Async/Await Ghi chú. Chúng tôi đang sử dụng câu lệnh try/catch cũ để bắt bất kỳ lỗi nào xảy ra trong bất kỳ thao tác không đồng bộ nào trong câu lệnh try Ghi chú. Từ khóa async trước khi khai báo hàm làm cho hàm trả về ngầm định một Promise Ghi chú. Từ khóa chờ đợi chỉ có thể được sử dụng bên trong chức năng không đồng bộ. Sử dụng từ khóa chờ đợi trong bất kỳ chức năng nào khác không phải là chức năng không đồng bộ sẽ gây ra lỗi. Từ khóa await đợi biểu thức bên tay phải (có lẽ là Lời hứa) quay lại trước khi thực thi dòng mã tiếp theo Tham số mặc định là một cách mới để xác định các biến mặc định trong JavaScript, nó có sẵn trong Phiên bản ES6 hoặc ECMAScript 2015 Chúng ta cũng có thể sử dụng Destructuring trong Default Parameters Chúng ta cũng có thể sử dụng các tham số được xác định trước cho các tham số được xác định sau chúng Các giá trị nguyên thủy như
Lý do cho điều này là giá trị Đối tượng mới được tạo ngay lập tức bị loại bỏ sau khi chúng ta truy cập xong một thuộc tính hoặc gọi một phương thức Câu hỏi số 7. Các cách để xử lý Mã không đồng bộ trong Javascript là gì?
Có 4 cách mà một hàm có thể được gọi trong JavaScript. Lời gọi xác định giá trị của Gọi như một hàm — Nếu một hàm không được gọi như một phương thức, như một hàm tạo hoặc với các phương thức Gọi như một phương thức — Nếu một thuộc tính của một đối tượng có một giá trị của một hàm, chúng ta gọi nó là một phương thức. Khi phương thức đó được gọi, giá trị Lời gọi như một hàm tạo — Nếu một hàm được gọi với từ khóa Gọi bằng các phương thức .then 6 làm gì?Từ khóa Giả sử chúng ta có một mã ví dụ dưới đây Từ khóa
Trong hình trên, trước tiên, nó sẽ tạo một đối tượng trống Khi một sự kiện xảy ra trên một phần tử DOM, sự kiện đó không hoàn toàn xảy ra trên một phần tử đó. Trong Giai đoạn nắm bắt, sự kiện bắt đầu từ |