下面的代码打印什么内容,为什么? var b = 10; (function b(){ b = 20; console.log(b); })(); 输出: ƒ b(){ b = 20; console.log(b); } 原因: 作用域:执行上下文中包含作用域链; 特性:声明提前:一个声明在函数体内都是可见的,函数声明优先于变量声明; 在非匿名自执行函数中,函数变量为只读状态无法修改。