var x = 10; function foo() { var y = x + 5; return y; } function bar() { var x = 2; return foo(); } console.log(bar()); // 15En mi opinión, la salida debería ser 7 ya que el envt léxico de foo(). es bar() y, por lo tanto, el valor de x debe tomarse como 2, no como 10.
Por favor corrija mi entendimiento