有人能解释一下这段代码的输出吗?

问题描述

这是我正在编译的代码

var a = 10;
var c = 5;
b(40);

function b(x) {
  a(20);
  a=40;
  c=50;
  function a() { console.log(x);}  
}

console.log(a);
console.log(c);

你能告诉我输出并解释一下吗?

解决方法

40 10 50

首先将执行 b(40)。然后 a(20) 将忽略 20 并打印 x (当前为 40)。然后将 a 设置为 40,将 c 设置为 50。然后将它们都打印在第 12 和 13 行。

,

40 10 50

第二个是公元前 10 年,b() 中声明的 a 与开头声明的变量不同(只需执行代码)。