Tech Mahindra
10+ Interview Questions and Answers
Q1. What are the three stages of event propagation and how to handle it
Event propagation consists of three stages: capturing, target, and bubbling.
Capturing phase: Events are captured from the outermost element to the target element.
Target phase: Event reaches the target element where the event originated.
Bubbling phase: Events bubble up from the target element to the outermost element.
Q2. What is difference between use reducer and use state
useReducer is preferred for managing complex state logic, while useState is simpler for basic state management.
useReducer is more suitable for managing complex state logic and multiple state values
useState is simpler and more straightforward for basic state management with a single value
useReducer allows for more organized and centralized state updates through actions and reducers
useState is commonly used for simple component-level state management
Q3. How you will pass data from parent to child
Data can be passed from parent to child components in React using props.
Pass data as props from parent component to child component
Use state management libraries like Redux or Context API for complex data sharing
Use callback functions to pass data from child to parent components
Q4. How to handle errors in your react application
Errors in a React application can be handled by using error boundaries, try-catch blocks, and displaying error messages to users.
Use error boundaries to catch errors in components and display a fallback UI
Wrap code that may throw errors in try-catch blocks to handle exceptions
Use libraries like React Error Boundary to easily implement error handling
Display error messages to users to inform them about the issue and possible solutions
Q5. Error boundary and how to handle
Error boundary is a React component that catches JavaScript errors anywhere in a component tree and logs those errors.
Error boundaries are React components that catch JavaScript errors in their child component tree.
They are used to prevent the entire UI from crashing due to a single error.
Error boundaries work like a JavaScript catch {} block, but for components.
They are defined using componentDidCatch lifecycle method.
Example:
Q6. How you can clone an object
To clone an object in JavaScript, you can use the spread operator or Object.assign() method.
Use the spread operator to create a shallow copy of an object: const clonedObj = { ...originalObj };
Use Object.assign() method to create a shallow copy of an object: const clonedObj = Object.assign({}, originalObj);
For deep cloning, you can use libraries like Lodash or write a custom function to recursively clone nested objects.
Q7. Explain map filter and reduce functions
Map, filter, and reduce are higher-order functions in JavaScript used to manipulate arrays.
Map: Transforms each element in an array and returns a new array with the transformed elements.
Example: [1, 2, 3].map(num => num * 2) returns [2, 4, 6].
Filter: Returns a new array with elements that pass a certain condition.
Example: [1, 2, 3].filter(num => num > 1) returns [2, 3].
Reduce: Applies a function against an accumulator and each element in the array to reduce it to a single val...read more
Q8. What hooks you have used
I have used React hooks such as useState, useEffect, useContext, and useRef in my projects.
useState
useEffect
useContext
useRef
Q9. Let var const in JavaScript
var and const are used to declare variables in JavaScript, with var being mutable and const being immutable.
var is used to declare variables that can be reassigned and updated
const is used to declare variables that cannot be reassigned or updated
let is another keyword used for declaring variables, similar to var but with block scope
Q10. Write your own custom hook
Custom hook to fetch data from an API
Create a function that uses the useState and useEffect hooks
Use the fetch API to make a request to the desired endpoint
Return the fetched data and loading state in an array
Q11. Use of never in typescript
The 'never' type in TypeScript represents a value that will never occur.
Used to indicate that a function will not return a value
Commonly used in union types to exclude certain values
Helps catch potential errors at compile time
Interview Process at null
Top Front end Developer Interview Questions from Similar Companies
Reviews
Interviews
Salaries
Users/Month