Function Scopes Javascript
var num1 = 20,
num2 = 3,
name = "Chaitanya";
function multiply() {
return num1 * num2;
}
console.log(multiply()); // Returns 60
// A nested function example
function getScore() {
var num1 = 2,
num2 = 3; // these will shadow the global num1 & num2 variables
function add() {
return name + " scored " + (num1 + num2); // name from global scope
}
return add;
}
console.log(getScore()()); // Returns "Chaitanya scored 5"
What will be the output of the following code?
#doubt
for (let i = 0 ; i < 5 ; i++) {
setTimeout(function() {
console.log(i);
}, i*1000);
}
// output: (because let is block scoped)
// 0
// 1
// 2
// 3
// 4
for (var i = 0 ; i < 5 ; i++) {
setTimeout(function() {
console.log(i);
}, i*1000);
}
// output: (because var is function scoped)
// 5
// 5
// 5
// 5
// 5