Your product could be here, in front of thousands of JavaScript developers. Sponsor this spot →
JavaScript Quiz

What happens when you assign a variable without declaring it?

Do you know what will be the output of this code?

JavaScript
function f() {
  y = 10;
}

f();
console.log(y);
Show answer and explanation

The answer is 10.

Without var, let or const, the assignment creates a property on the global object. That’s an accidental global.

In strict mode (and in modules and classes) the same code throws ReferenceError: y is not defined.

Take the full quiz Next question →

More Scope & Hoisting questions

  1. Is a var loop variable accessible after a for loop?
  2. Why does var in a loop with setTimeout print 3 3 3?
  3. Why does let in a for loop fix the setTimeout closure problem?
  4. Why does using a var before its declaration return undefined?
  5. What is the temporal dead zone in JavaScript?

Related topics