Answer:
Static scoping: x is 5
Dynamic scoping : x is 10.
Explanation:
Static scoping :
In static scoping the variable of a function take the value within the function.
If there is no values exist within the function then take the global value of the variable.
var x // No value is assigned to x so it check global value of x
function sub1() {
document.write(“x = “ + x + “”); // So it print x = 5
}
function sub2() {
var x;
x = 10;
sub1();
}
x = 5; // It is the global value of x
sub2();
Static scoping: x is 5
Dynamic scoping :
In Dynamic scoping the variable of a function take the value all the calling function ends.
If the global value is the last assigned value of a variable then it take that value.
If there exist some other function after global variable value if that function contain the variable with some assigned value variable take that value.
var x
function sub1() {
document.write(“x = “ + x + “”);
}
x = 5; // At this point x value is 5 and check there exist a function
sub2(); // So now call this function
function sub2() {
var x;
x = 10; // The value of x = 5 is replaced with x = 10
sub1();
}
Dynamic scoping : x is 10.