ES6 - Compare Scopes of the var and let Keywords

Tell us what’s happening:
Describe your issue in detail here.

checkScope() should return the string function scope. I do not understand how I get it return that.

Your code so far

function checkScope() {
  let i = 'function scope';
  if (true) {
    i = 'block scope';
    console.log('Block scope i is: ', i);
  }
  console.log('Function scope i is: ', i);
  return i;
}

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42

Challenge: ES6 - Compare Scopes of the var and let Keywords

Link to the challenge:

function checkScope() {
  let i = 'function scope';
  // ...

You are declaring i with function scope. The problem is that when you run i = 'block scope';, it is referring to that same variable. You need to declare a second variable i that only refers to that block scope so that the function scope i does not change.

Does that make sense?

1 Like

Yes, I finally got it. I had to step away from the computer for a little bit. Thank you.

1 Like