Table of contents | |
Multiple Choice Questions (MCQs) | |
Higher Order Thinking Questions (HOTS) | |
Fill in the Blanks | |
True/False | |
Hands-On Questions |
Q.1. Which of the following best describes the concept of scope in JavaScript?
(a) The visibility or accessibility of variables, functions, and objects in some particular part of your code
(b) The order in which statements are executed in a JavaScript program
(c) The process of organizing and structuring code into smaller, reusable components
(d) The ability to assign multiple values to a single variable
Ans. (a)
Q.2. What is the scope of a variable declared with the var keyword inside a function?
(a) Global scope
(b) Local scope
(c) Block scope
(d) Function scope
Ans. (d)
Q.3. Hoisting in JavaScript refers to:
(a) The process of raising an error when an undeclared variable is accessed
(b) The process of moving variable and function declarations to the top of their containing scope
(c) The process of assigning a default value to all variables
(d) The process of automatically converting all variables to the global scope
Ans. (b)
Q.4. Which of the following statements about hoisting is true?
(a) Only variable declarations are hoisted, not their assignments
(b) Both variable declarations and assignments are hoisted
(c) Only variable assignments are hoisted, not their declarations
(d) Hoisting only applies to variables declared with the let keyword
Ans. (a)
Q.5. The "let" and "const" keywords introduced in ES6 have which type of scope?
(a) Global scope
(b) Local scope
(c) Block scope
(d) Function scope
Ans. (c)
Q.1. Explain the difference between function scope and block scope in JavaScript.
Function scope refers to the visibility of variables declared within a function, while block scope refers to the visibility of variables declared within a block of code (usually delimited by curly braces '{}').
Q.2. Consider the following code snippet:
var x = 10;
function foo() {
console.log(x);
var x = 20;
}
foo();
What will be the output of the above code? Explain the reason behind the output.
The output of the code will be 'undefined'. The reason is that when the 'console.log(x)' statement is executed inside the 'foo()' function, the variable 'x' is hoisted to the top of the function scope but not initialized with a value. Therefore, it has the value 'undefined' at that point.
Q.3. What is the output of the following code?
let x = 10;
if (true) {
let x = 20;
console.log(x);
}
console.log(x);
The output of the code will be:
2010
The first 'console.log(x)' statement inside the if block outputs '20' because 'x' is assigned the value '20' within that block. The second 'console.log(x)' statement outputs '10' because it refers to the 'x' variable declared in the outer scope.
Q.4. Explain the concept of lexical scoping in JavaScript.
Lexical scoping in JavaScript means that the scope of a variable is determined by its position within the source code's lexical structure, or in other words, its location in the code. Variables declared outside of any function have global scope, while variables declared inside a function have function scope.
Q.5. What is the difference between 'var', 'let', and 'const' in terms of hoisting?
The 'var' keyword hoists both variable declarations and assignments, meaning that the variable is accessible throughout its containing scope. On the other hand, 'let' and 'const' variables are also hoisted but not initialized. They are in a "temporal dead zone" until they are declared and assigned in the code.
1. The _________ scope in JavaScript refers to variables declared outside any function or block.
Global
2. Hoisting in JavaScript moves variable and function _________ to the top of their containing scope.
declarations
3. The "let" and "const" keywords introduced in ES6 have _________ scope.
block
4. Lexical scoping determines the _________ of a variable based on its position within the source code.
scope
5. The _________ keyword is used to declare a block-scoped variable in JavaScript.
'let'
1. In JavaScript, a variable declared with 'var' keyword is hoisted to the top of its scope.
True
2. Variables declared with 'let' or 'const' keywords are not hoisted in JavaScript.
True
3. In JavaScript, a variable declared inside a function has function scope.
True
4. Block scope was introduced in JavaScript before the ES6 version.
False
5. Hoisting applies only to variable declarations and not to function declarations.
False
Q.1. Write a JavaScript function called 'multiplyByTwo' that takes a number as an argument and returns the result of multiplying that number by 2.
function multiplyByTwo(number) {
return number * 2;
}
Q.2. Write a JavaScript code snippet that demonstrates block scope and hoisting.
{
console.log(x); // ReferenceError: x is not defined
let x = 10;
console.log(x); // 10
}
Q.3. Fix the following code to correctly log the value of 'x' outside the if statement:
let x = 10;
if (true) {
let x = 20;
console.log(x);
}
console.log(x);
let x = 10;
if (true) {
let x = 20;
console.log(x); // 20
}
console.log(x); // 10
Q.4. Write a JavaScript function called 'add' that takes two numbers as arguments and returns their sum. Use the 'let' keyword to declare variables inside the function.
function add(a, b) {
let sum = a + b;
return sum;
}
Q.5. Write a JavaScript code snippet that demonstrates lexical scoping and the use of 'var' keyword.
function outer() {
var x = 10;
function inner() {
console.log(x);
}
inner();
}
outer(); // Output: 10
Note: The variable 'x' in the 'inner()' function is accessible due to lexical scoping.
51 videos|28 docs|12 tests
|
|
Explore Courses for Software Development exam
|