While this sounds like it would be a good answer please do not do this; because that would be a red flag.
The point of this kind of interview exercise is not about whether it’s practical to write a polyfill for a well supported feature. I encourage my teams to use all ES2021 features and we polyfill/transpile support for everything using well known tools and resources (including core-js, as you suggest), but I would ask you this in an interview.
Why? The process of a candidate producing the polyfill gives a lot of clues about their knowledge of the JavaScript language and their problem solving skills.
For example array.prototype.filter in addition to demonstrating knowledge of how that feature works, demonstrates working knowledge of:
How polyfills work
Feature detection
Loops
Prototypical inheritance
Scope/block scope
Function as a first class citizen
Array mutation
The algorithmic details of the implementation would have some weight as well, but for me this question is more about probing for language and platform knowledge.
The example for array.prototype.filter in this article (depending on seniority of candidate) wouldn’t be acceptable, because its not a polyfill: it’s a ponyfill.
Without implementing feature detection, removing the first argument (arr), and finally applying this to the Array prototype in the global scope: this is not a 1:1 replacement for array.prototype.filter.
While this sounds like it would be a good answer please do not do this; because that would be a red flag.
The point of this kind of interview exercise is not about whether it’s practical to write a polyfill for a well supported feature. I encourage my teams to use all ES2021 features and we polyfill/transpile support for everything using well known tools and resources (including core-js, as you suggest), but I would ask you this in an interview.
Why? The process of a candidate producing the polyfill gives a lot of clues about their knowledge of the JavaScript language and their problem solving skills.
For example
array.prototype.filter
in addition to demonstrating knowledge of how that feature works, demonstrates working knowledge of:The algorithmic details of the implementation would have some weight as well, but for me this question is more about probing for language and platform knowledge.
The example for
array.prototype.filter
in this article (depending on seniority of candidate) wouldn’t be acceptable, because its not a polyfill: it’s a ponyfill.Without implementing feature detection, removing the first argument (arr), and finally applying this to the Array prototype in the global scope: this is not a 1:1 replacement for
array.prototype.filter
.In this article, I was trying to show how those method works and I have also written at the end to use the Prototypal Inheritance way.
I have written it as partial polyfill.