Javascript内部原理
原文引用 大专栏 https://www.dazhuanlan.com/2019/08/26/5d6332d1a19b5/ 我们真的了解 Javascript 的内部工作原理吗? 下面几个问题可以检验一下。 Questions Q1 1234 if (!("a" in window)) { var a = 1;}alert(a); Q2 12345 var a = 1, b = function (x) { x && a(--x); };alert(a); Q3 12345 function a(x) { return x * 2;}var a;alert(a);//function a(x) {return x * 2;} 处理上下文代码 要想理解上面问题的执行结果的原因,需要先理解 Javascript 是如何处理执行上下文代码。 处理执行上下文代码分为两个阶段: 进入执行上下文 执行代码 进入执行上下文 先了解一个概念 变量对象(Variable object) ,它是一个与执行上下文有关的特殊的对象,它包括: 变量声明(var) 函数声明(FD) 函数形参在上下文中的声明 一般用 VO = { } 表示变量对象。举个例子: 12345 var a = 10;function test(x) { var b = 20;};test(30); 上述代码对应的变量对象(VO