[Easy] LeetCode JS 30 - 2667. Create Hello World Function
March 5, 2024
LeetCode 30 Days of JavaScript
This question is from LeetCode's 30 Days of JavaScript Challenge
2667. Create Hello World FunctionQuestion Prompt
Given a function fn and a time in milliseconds t, return a debounced version of that function.
Write a function createHelloWorld. It should return a new function that always returns "Hello World".
// Example 1
Input: args = []
Output: "Hello World"
Explanation:
const f = createHelloWorld();
f(); // "Hello World"
// Example 2
Input: args = [{},null,42]
Output: "Hello World"
Explanation:
const f = createHelloWorld();
f({}, null, 42); // "Hello World"
Solutions
Looking to practice more questions like these? We recommend GreatFrontEnd, the best platform for honing your frontend interview skills!
We need a function createHelloWorld that doesn't directly print "Hello World", but instead returns another function that does. This hints at using functions as values and closures.
We define an inner function within createHelloWorld that simply returns "Hello World". This inner function captures the environment (scope) of createHelloWorld when it's created, even though it's called later.
The createHelloWorld function doesn't execute the inner function, it simply returns it. This allows us to store the returned function and call it later, even outside the createHelloWorld scope.
var createHelloWorld = function () {
return function () {
return "Hello World";
};
};
Or we can use the arrow function syntax to make it more concise. Arrow functions can be shorter, but their readability might suffer for those unfamiliar with the syntax
const createHelloWorld = () => () => "Hello World";