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 runs in the browser
and is often used alongside HTML and CSS to enhance user interfaces and handle
events such as clicks, mouse movements, and form submissions. JavaScript can
also be used server-side (e.g., with Node.js).
2. What are the different types of data types in JavaScript?
Answer:
JavaScript has two types of data types:
Primitive Types:
o String: Represents textual data.
o Number: Represents numeric data (integers or floating-point).
o Boolean: Represents true or false values.
o Null: Represents an intentional absence of any value.
o Undefined: Represents a variable that has not been assigned a value.
o Symbol: Used for creating unique identifiers.
o BigInt: Used for large integers.
Non-Primitive Types:
o Object: A collection of key-value pairs (including arrays, functions,
and dates).
3. What is the difference between let, const, and var?
Answer:
var: Declares a variable with function scope. It is hoisted to the top of its
scope.
, let: Declares a block-scoped variable. It is hoisted but not initialized.
const: Declares a block-scoped variable that cannot be reassigned after
initialization. The value is constant.
4. Explain the concept of closures in JavaScript.
Answer:
A closure is a function that retains access to its lexical scope (the environment in
which it was created) even after the outer function has finished executing. This
allows a function to remember variables from its outer scope, providing powerful
capabilities like private variables and function factories.
Example:
function outer() {
let counter = 0;
return function inner() {
counter++;
console.log(counter);
}
}
const count = outer();
count(); // Output: 1
count(); // Output: 2
5. What is the this keyword in JavaScript?
Answer:
The this keyword refers to the object that is currently executing the code. Its
value depends on how the function is called:
In global scope: this refers to the global object (e.g., window in browsers).
In object methods: this refers to the object the method is part of.