1. What is JavaScript?
Answer: JavaScript is a high-level, interpreted programming language primarily used for creating interactive and dynamic content on web pages. It is an essential part of web development alongside HTML and CSS.
2. What are the different data types in JavaScript?
Answer: JavaScript supports several data types, including:
Primitive types: String, Number, Boolean, Null, Undefined, Symbol, BigInt.
Non-primitive types: Object (including Arrays and Functions).
3. What is the difference between let, const, and var?
Answer:
var: Function-scoped or globally scoped; can be redeclared.
let: Block-scoped; cannot be redeclared within the same scope.
const: Block-scoped; must be initialized at declaration and cannot be reassigned.
4. What is the purpose of the this keyword in JavaScript?
Answer: The this keyword refers to the context in which a function is executed. Its value can vary depending on how a function is called (e.g., as a method of an object or as a standalone function).
5. What are promises in JavaScript?
Answer: Promises are objects that represent the eventual completion (or failure) of an asynchronous operation and its resulting value. A promise can be in one of three states: pending, fulfilled, or rejected.
6. What is the difference between == and ===?
Answer:
== (loose equality): Checks for equality after performing type conversion if necessary.
=== (strict equality): Checks for equality without type conversion; both value and type must be the same.
7. What is an arrow function? How does it differ from regular functions?
Answer: Arrow functions provide a shorter syntax for writing functions and do not have their own this context; they inherit this from the surrounding lexical scope:
const add = (a, b) => a + b;
8. How do you create an object in JavaScript?
Answer: Objects can be created using various methods:
Object literals: const obj = { key: 'value' };
Constructor functions:
function Person(name) {
this.name = name;
}
Classes (ES6):
class Person {
constructor(name) {
this.name = name;
}
}
9. What is event delegation in JavaScript?
Answer: Event delegation is a technique where a single event listener is added to a parent element to manage events for its child elements. This approach improves performance by reducing the number of event listeners needed.
10. What are closures in JavaScript?
Answer: A closure is a function that retains access to its lexical scope even when the function is executed outside that scope. This allows for private variables and encapsulation:
function outer() {
let privateVar = 'I am private';
return function inner() {
console.log(privateVar);
};
}
const innerFunc = outer();
innerFunc(); // Output: I am private
11. What is hoisting in JavaScript?
Answer: Hoisting is a JavaScript mechanism where variable and function declarations are moved to the top of their containing scope during compilation. This means variables declared with var can be used before their actual declaration.
12. Explain asynchronous programming in JavaScript.
Answer: Asynchronous programming allows code to run without blocking the execution of subsequent code. This is typically achieved using callbacks, promises, or async/await syntax to handle operations like API calls or timers.
13. What are template literals in JavaScript?
Answer: Template literals are string literals that allow embedded expressions and multi-line strings, enclosed by backticks (``):
const name = "John";
const greeting = `Hello, ${name}!`;
14. How do you handle errors in JavaScript?
Answer: Errors can be handled using try-catch blocks:
try {
// Code that may throw an error
} catch (error) {
console.error(error);
}
15. What is the difference between synchronous and asynchronous functions?
Answer: Synchronous functions block code execution until they complete, while asynchronous functions allow other code to run while waiting for their completion, often using callbacks or promises to handle results.
16. What are modules in JavaScript?
Answer: Modules are reusable pieces of code that can export variables and functions for use in other files or modules. They help organize code into manageable sections:
// module.js
export const myVar = 'Hello';
// main.js
import { myVar } from './module.js';
17. What is the purpose of Array.prototype.map()?
Answer: The map() method creates a new array populated with the results of calling a provided function on every element in the calling array:
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2); // [2, 4, 6]
18. How do you check if an object has a specific property?
Answer: You can use the in operator or Object.hasOwnProperty() method:
const obj = { key: 'value' };
console.log('key' in obj); // true
console.log(obj.hasOwnProperty('key')); // true
19. What are higher-order functions in JavaScript?
Answer: Higher-order functions are functions that take other functions as arguments or return them as output. They enable functional programming patterns:
function higherOrder(func) {
return function() {
return func();
};
}
20. What is the event loop in JavaScript?
Answer: The event loop is a fundamental part of JavaScript's concurrency model that allows asynchronous operations to be executed while maintaining a single-threaded environment. It manages execution contexts and processes events from the message queue.
Comentarios