Predict the output of the following JavaScript code

function test() { var a = 1; function func() { console.log(a); var a = 2; } func(); } test();

 

 

 

 

The variable a is hoisted within the func function, meaning the declaration var a is moved to the top of the function scope. However, the assignment a = 2 is not hoisted. Therefore, console.log(a) references the hoisted variable a before it is assigned any value, resulting in undefined.