Polyfills… Polyfills… Polyfills… (Phần 1)

May 08 2022
Trong các vòng Phỏng vấn gần đây nhất của tôi, tôi đã được yêu cầu viết Polyfills nhiều lần, vì vậy trong bài đăng này, tôi sẽ giải thích về “Các Polyfills thường được hỏi cho các cuộc phỏng vấn Frontend”. Hãy để tôi bắt đầu bằng cách nói Polyfills là gì và tại sao chúng lại cần thiết.

Trong các vòng Phỏng vấn gần đây nhất của tôi, tôi đã được yêu cầu viết Polyfills nhiều lần, vì vậy trong bài đăng này, tôi sẽ giải thích về “ Các Polyfills thường được hỏi cho các cuộc phỏng vấn Frontend ”.

Hãy để tôi bắt đầu bằng cách nói Polyfills là gì và tại sao chúng lại cần thiết.

Polyfill, hoặc polyfiller, là một đoạn mã (hoặc plugin) cung cấp công nghệ mà bạn, nhà phát triển, mong đợi trình duyệt cung cấp nguyên bản. Ví dụ: một polyfill có thể được sử dụng để bắt chước chức năng của Array.flat trong IE7 bằng cách sử dụng ngăn xếp hoặc đệ quy hoặc bất kỳ thứ gì khác mà bạn yêu cầu như Array.flat không được IE7 hỗ trợ.

Bây giờ, bạn đã biết polyfills là gì, hãy để tôi bắt đầu bằng cách viết Array Polyfills thường gặp trong JavaScript.

Array.map

Trước khi viết polyfill, bạn cần hiểu cách thức, hàm hoạt động.

Trong trường hợp Array.map

  1. Nó nhận một hàm gọi lại được thực thi cho mọi phần tử của mảng và một thisArg (tùy chọn).
  2. Hàm gọi lại có 3 đối số - Phần tử, chỉ mục và chính mảng.
  3. Bản đồ trả về một mảng mới và không sửa đổi mảng ban đầu.

  1. Polyfill phải được gắn vào Prototype, để nó có thể được truy cập như một thuộc tính mảng.
  2. điều này bên trong hàm trỏ đến mảng mà customMap đang được gọi.

Array.reduce (Được hỏi nhiều nhất)

  1. Reduce có hai đối số, hàm gọi lại và giá trị khởi tạo (tùy chọn)
  2. Hàm gọi lại nhận 4 đối số, bộ tích lũy là kết quả của quá trình tính toán trên các giá trị trước đó, giá trị currentValue, chỉ mục và mảng là tùy chọn.
  3. Reduce có nhiều cách sử dụng, chẳng hạn như tổng tất cả các phần tử trong mảng hoặc từ quan điểm phỏng vấn, nó cũng có thể được sử dụng như một hàm Pipe
  4. Tương tự, bạn có thể được yêu cầu viết polyfill của r educeRight .

  1. Nó tương tự như Array.map, chỉ khác là chỉ các phần tử thỏa mãn hàm gọi lại sẽ được đẩy vào mảng.
  2. Độ dài của mảng được lọc sẽ luôn nhỏ hơn hoặc bằng mảng ban đầu.
  3. Các phần tử của mảng đã lọc không được sửa đổi.
  4. Array.find tương tự như filter, thay vì đẩy phần tử, nó cần trả về phần tử thỏa mãn điều kiện gọi lại.

  1. Ở đây mảng được làm phẳng với sự phụ thuộc được truyền cho nó, theo mặc định mảng sẽ được làm phẳng lên một mức.
  2. Ở đây, đệ quy được sử dụng để giải quyết vấn đề này, nhưng nó cũng có thể được giải quyết bằng cách sử dụng hàm ngăn xếp hoặc trình tạo.
  3. Tương tự, Array.flatMap có thể được hỏi trong các cuộc phỏng vấn.

Như một phần thưởng, tôi cũng sẽ chia sẻ một câu hỏi rất thường gặp nữa (Đã hỏi tôi trong Tekion, Practo & Paytm)

Trói buộc

  1. Bind được sử dụng để mượn hàm, nó trả về một hàm mới có thể được gọi sau này.
  2. Để viết một hàm customBind, bạn cần gắn nó vào nguyên mẫu Hàm vì Bind là một phần của nguyên mẫu hàm.
  3. Sự khác biệt giữa ràng buộc và lệnh gọi hoặc áp dụng là lệnh gọi và áp dụng được gọi khi chúng đang được gọi, nhưng ràng buộc trả về một hàm có thể được gọi sau đó.
  4. Người phỏng vấn có thể yêu cầu bạn trực tiếp viết nhiều ràng buộc hoặc họ có thể trình bày cho bạn một tình huống mà bạn cần sử dụng hàm ràng buộc, chẳng hạn như trong setTimeout (đã hỏi tôi trong Rippling) nếu bạn được yêu cầu gọi một hàm bằng “this” từ khóa hiện tại, sau đó bạn cần phải ràng buộc nó, nếu không nó sẽ trả về không xác định.
  5. Nếu bạn đã quen thuộc với React, nó cũng được sử dụng rộng rãi ở đó.

Đối với Phần 2, hãy tham khảo -https:///@souravsaha101/polyfills-polyfills-polyfills-part-2-419f88b23f8f

Theo dõi tôi trên LinkedIn tạihttps://www.linkedin.com/in/sourav-saha-66b37b92/

© Copyright 2021 - 2022 | vngogo.com | All Rights Reserved