Exercise – Scope
by Ryan Morris
JavaScript
/**
* Exercise:
*
* Function Scope
*
* Work in the console, or use "console.log()" to output to the console
* from the script
*
* You could also use console.assert(boolean) to test your functions
*
* Part 1: Write two functions that share the same, global variable
* - Verify this by logging the value of the variable to the console
* from within each function
*/
var globalX = 1;
function funcOne() {
console.log(globalX);
}
function funcTwo() {
console.log(globalX);
}
funcOne();
funcTwo();
/*
* Part 2: Write two functions that share a non-global variable
* - Verify this by logging the value of the variable to the console
* from within each function
*
* Hint: You can write functions inside of other functions...
*/
function funcOuter() {
var x = 5;
console.log(x);
function funcOne() {
console.log(x);
}
function funcTwo() {
console.log(x);
}
funcOne();
funcTwo();
}
//funcOne(); // not available
funcOuter();
/*
* Bonus: Write a function (outer) that returns another function (inner)
*
* The outer function expects one Number parameter, x
* The inner function should add 1 to x and log it to the console
*
* Hint: You will need to run the outer function once
* in order to get the inner function
*/
function outer(x) {
return function inner() {
x = x+1;
console.log(x);
}
}
console.group('Bonus');
var inner = outer(5);
inner();
inner();
inner();