第 33 题:下面的代码打印什么内容,为什么?
js
var b = 10;
(function b() {
b = 20;
console.log(b)
})()
打印结果内容如下:
js
ƒ b() {
b = 20;
console.log(b)
}
原因分析:
作用域
:执行上下文中包含作用域链 在理解作用域链之前,先介绍一下作用域,作用域可以理解为执行上下文中申明的变量和作用的范围;包括块级作用域/函数作用域;特性
:声明提前:一个声明在函数体内都是可见的,函数声明优先于变量声明;
在非匿名自执行函数中,函数变量为只读状态无法修改;