JavaScript Keywords
JavaScript Keywords Interview with follow-up questions
Interview Question Index
- Question 1: What are JavaScript keywords and why are they important?
- Follow up 1 : Can you name a few JavaScript keywords?
- Follow up 2 : What happens if you try to use a keyword as a variable name?
- Follow up 3 : What is the 'this' keyword in JavaScript?
- Follow up 4 : What is the 'new' keyword used for in JavaScript?
- Question 2: What is the purpose of the 'var' keyword in JavaScript?
- Follow up 1 : What is the difference between 'var', 'let', and 'const'?
- Follow up 2 : What is hoisting in JavaScript?
- Follow up 3 : Can you explain the scope of a variable declared with 'var'?
- Question 3: How does the 'function' keyword work in JavaScript?
- Follow up 1 : What is a function declaration?
- Follow up 2 : What is a function expression?
- Follow up 3 : Can you explain the concept of 'function hoisting'?
- Question 4: What is the 'return' keyword in JavaScript?
- Follow up 1 : What happens if a function doesn't have a return statement?
- Follow up 2 : Can a function return multiple values?
- Follow up 3 : What is the purpose of 'return' in a recursive function?
- Question 5: What does the 'typeof' keyword do in JavaScript?
- Follow up 1 : What are the possible return values of 'typeof'?
- Follow up 2 : What is the result of 'typeof null'?
- Follow up 3 : How can 'typeof' be used to check if a variable is an array?
Question 1: What are JavaScript keywords and why are they important?
Answer:
JavaScript keywords are reserved words that have predefined meanings in the language. They are important because they are used to define the syntax and structure of JavaScript code. Keywords cannot be used as variable names or function names. They are used to perform specific actions or control the flow of the program.
Follow up 1: Can you name a few JavaScript keywords?
Answer:
Some of the JavaScript keywords include:
var
: used to declare variablesif
,else if
,else
: used for conditional statementsfor
,while
,do while
: used for loopsfunction
: used to define functionsreturn
: used to return a value from a functionbreak
,continue
: used to control the flow of loopstry
,catch
,finally
: used for error handlingthis
: used to refer to the current objectnew
: used to create an instance of an object
Follow up 2: What happens if you try to use a keyword as a variable name?
Answer:
If you try to use a keyword as a variable name, you will get a syntax error. Keywords are reserved and cannot be used as identifiers for variables, functions, or any other named entities in JavaScript.
Follow up 3: What is the 'this' keyword in JavaScript?
Answer:
The 'this' keyword in JavaScript refers to the object that is currently executing the code. It is a special variable that is automatically defined in the scope of every function. The value of 'this' depends on how a function is called. When a function is called as a method of an object, 'this' refers to the object itself. When a function is called as a standalone function, 'this' refers to the global object (window in a browser). 'this' can also be explicitly set using the call(), apply(), or bind() methods.
Follow up 4: What is the 'new' keyword used for in JavaScript?
Answer:
The 'new' keyword in JavaScript is used to create an instance of an object. It is used with constructor functions to create new objects based on a blueprint defined by the constructor. When the 'new' keyword is used, it does the following:
- Creates a new empty object
- Sets the prototype of the new object to the prototype property of the constructor function
- Executes the constructor function with 'this' set to the new object
- Returns the new object
Question 2: What is the purpose of the 'var' keyword in JavaScript?
Answer:
The 'var' keyword is used to declare a variable in JavaScript. It is the oldest way to declare variables in JavaScript and has function scope. Variables declared with 'var' are hoisted to the top of their scope and can be accessed before they are declared.
Follow up 1: What is the difference between 'var', 'let', and 'const'?
Answer:
In JavaScript, 'var', 'let', and 'const' are used to declare variables, but they have some differences:
- 'var' has function scope, while 'let' and 'const' have block scope.
- Variables declared with 'var' are hoisted to the top of their scope, while variables declared with 'let' and 'const' are not hoisted.
- 'var' allows variable redeclaration within the same scope, while 'let' and 'const' do not allow redeclaration.
- 'let' allows variable reassignment, while 'const' does not allow reassignment after it has been initialized.
Follow up 2: What is hoisting in JavaScript?
Answer:
Hoisting is a JavaScript behavior where variable and function declarations are moved to the top of their containing scope during the compilation phase, before the code is executed. This means that you can use variables and functions before they are declared. However, only the declarations are hoisted, not the initializations. Variables declared with 'var' are hoisted, while variables declared with 'let' and 'const' are not hoisted.
Follow up 3: Can you explain the scope of a variable declared with 'var'?
Answer:
Variables declared with 'var' have function scope. This means that they are accessible within the function in which they are declared, as well as any nested functions. However, they are not accessible outside of the function. If a variable declared with 'var' is accessed before it is declared, it will have the value 'undefined'. If a variable with the same name is declared multiple times within the same scope, the later declaration will override the earlier one.
Question 3: How does the 'function' keyword work in JavaScript?
Answer:
The 'function' keyword in JavaScript is used to define a function. It can be used in two ways: function declaration and function expression.
Follow up 1: What is a function declaration?
Answer:
A function declaration is a way to define a named function using the 'function' keyword followed by the function name, a list of parameters (optional), and the function body enclosed in curly braces. Here's an example:
function greet(name) {
console.log('Hello, ' + name + '!');
}
Follow up 2: What is a function expression?
Answer:
A function expression is a way to define a function as a value assigned to a variable. It starts with the 'function' keyword, followed by an optional function name (known as a named function expression), a list of parameters (optional), and the function body enclosed in curly braces. Here's an example:
var greet = function(name) {
console.log('Hello, ' + name + '!');
};
Follow up 3: Can you explain the concept of 'function hoisting'?
Answer:
Function hoisting is a JavaScript behavior where function declarations are moved to the top of their containing scope during the compilation phase, before the code is executed. This means that you can call a function before it is declared in the code. However, it's important to note that function expressions are not hoisted. Here's an example:
// Function declaration
greet('John');
function greet(name) {
console.log('Hello, ' + name + '!');
}
// Function expression
sayHello('Jane'); // Error: sayHello is not defined
var sayHello = function(name) {
console.log('Hello, ' + name + '!');
};
Question 4: What is the 'return' keyword in JavaScript?
Answer:
The 'return' keyword in JavaScript is used to specify the value that a function should return. When a function is called, the 'return' statement is used to end the execution of the function and send the specified value back to the caller. Here's an example:
function add(a, b) {
return a + b;
}
var result = add(2, 3);
console.log(result); // Output: 5
In this example, the 'return' statement is used to send the sum of 'a' and 'b' back to the caller.
Follow up 1: What happens if a function doesn't have a return statement?
Answer:
If a function doesn't have a 'return' statement, it will still execute the code inside the function but it will not return any value. In this case, the function will return 'undefined' by default. Here's an example:
function greet(name) {
console.log('Hello, ' + name + '!');
}
var result = greet('John');
console.log(result); // Output: undefined
In this example, the 'greet' function does not have a 'return' statement, so it returns 'undefined' when called.
Follow up 2: Can a function return multiple values?
Answer:
No, a function in JavaScript cannot directly return multiple values. However, you can return multiple values by using an array or an object. Here's an example using an array:
function getFullName(firstName, lastName) {
return [firstName, lastName];
}
var fullName = getFullName('John', 'Doe');
console.log(fullName[0]); // Output: John
console.log(fullName[1]); // Output: Doe
In this example, the 'getFullName' function returns an array containing the first name and last name.
Follow up 3: What is the purpose of 'return' in a recursive function?
Answer:
In a recursive function, the 'return' statement is used to end the execution of the current recursive call and return a value to the previous recursive call. This is important because it allows the function to build up the final result by combining the values returned from each recursive call. Here's an example of a recursive function to calculate the factorial of a number:
function factorial(n) {
if (n === 0) {
return 1;
}
return n * factorial(n - 1);
}
var result = factorial(5);
console.log(result); // Output: 120
In this example, the 'return' statement is used to return the product of 'n' and the result of the recursive call to 'factorial(n - 1)'.
Question 5: What does the 'typeof' keyword do in JavaScript?
Answer:
The 'typeof' keyword in JavaScript is used to determine the data type of a value. It returns a string indicating the type of the operand. For example, 'typeof 42' will return 'number', 'typeof 'hello'' will return 'string', and 'typeof true' will return 'boolean'.
Follow up 1: What are the possible return values of 'typeof'?
Answer:
The possible return values of 'typeof' are: 'undefined', 'boolean', 'number', 'string', 'bigint', 'symbol', 'function', and 'object'.
Follow up 2: What is the result of 'typeof null'?
Answer:
The result of 'typeof null' is 'object'. This is a historical bug in JavaScript and is considered a mistake. 'null' is actually a primitive value, but due to an implementation quirk, 'typeof null' returns 'object'.
Follow up 3: How can 'typeof' be used to check if a variable is an array?
Answer:
The 'typeof' operator cannot directly determine if a variable is an array. It will return 'object' for arrays as well. To check if a variable is an array, you can use the 'Array.isArray()' method. For example:
const arr = [1, 2, 3];
console.log(Array.isArray(arr)); // Output: true