How I explained callbacks to a JavaScript interviewer

The first time I truly nailed the callback question in a JavaScript interview 👇 1️⃣ Interviewer: What is a callback function in JavaScript? Me: A callback is a function that can be passed as an argument to another function, and it’s invoked later by that main function. 2️⃣ Interviewer: Okay, but assume I don’t know callbacks at all. Help me understand the idea. Me: Sure! Let me explain literally — why the function is called a “callback.” Let’s say we have a function like this 👇 function main(callback) {  console.log("I finish my job");  callback(); } main(function() {  console.log("Where are you?"); }); Output: I finish my job   Where are you? Here, the main function finishes its own job first and then calls back another function. That’s why it’s named callback function. 3️⃣ Interviewer: Sounds good. Can you tell me why callback functions are needed in real-world JavaScript? Me: Well, Let’s first talk about Synchronous and Asynchronous behavior in JavaScript. Callbacks were born to handle asynchronous situations - when one task takes time - API call, timeout; and you don’t want to block the rest of your code. Example - setTimeout(() => {  console.log("timeout"); }, 2000); Here, the () => { console.log("timeout") } part is a callback. Now, setTimeout is sent to the Web API. After 2 seconds, the callback is queued and then executed when the JavaScript engine is ready. 4️⃣ Interviewer: So, what I understand is - a callback always stays in the queue until the executing function finishes its job. Me: Not always, they’re used in synchronous ones too. In the first main() example, the callback was executed instantly once the main function completed. 5️⃣ Interviewer: Oh yes! I’ve seen callbacks in jQuery click events - they trigger instantly. Me: Exactly! But even that’s technically asynchronous, because the callback triggers when the browser detects the click event, which just happens very fast. 🗣️ Interviewer: That’s exactly how I wanted callbacks to be explained. Me: My pleasure — happy to help you understand the idea. #javascript #frontend #webdevelopment #interviewexperience #callback #learnjavascript #codingjourney #developerlife #programming #techcommunity

  • graphical user interface, text, application, chat or text message

This question always made me nervous before. What’s the toughest JavaScript question you’ve faced in interviews? 👇

Like
Reply

To view or add a comment, sign in

Explore content categories