作用域这一块的讲解感觉缺失了函数预编译这一模块
来源:6-5 作用域相关的面试题 - part1

1007123589qaz
2020-10-30
我记得之前面试的时候函数预编译还是必考的
函数预编译:
1、形参赋值
2、变量提升
3、代码自上而下执行
4、当前栈内存(私有作用域)销毁或者不销毁
之前遇到过经典的作用域面试题如下:
var num=1,
obj={
num:2,
fn:(function(num){
this.num*=2;
num+=2;
return function(){
this.num*=3;
num++;
console.log(num)
}
})(num)
}
var fn=obj.fn;
fn();
obj.fn();
console.log(num,obj.num)
写回答
1回答
-
双越
2020-10-30
这就涉及到一部分编译原理的知识了。不过确实应该了解一下。
另外,变量提升在 es6 已经没有了,语法检查就不会通过。
00
相似问题