当前位置: 首页 > 前端技术 > 正文

作用域、JS预解析机制

作用域:

域:空间、范围、区域,作用:读、写

“JS解析器”

1)“找一些东西”var  function 参数

  a = … 

    所有的变量,在正式运行代码之前,都提前赋了一个值:未定义(undefined)。

  fn1 = function fn1(){ alert(2); }

    所有的函数,在正式运行代码之前,都是整个函数块。

  这个过程叫 JS的预解析。

  遇到重名的:只留一个。

  变量和函数重名了,就只留下函数。

2)逐行解读代码:

  表达式:= + – * / % ++ — ! 参数……

  表达式可以修改预解析的值!

例:

<script>
var a = 1;
function fn1(a){
  alert(a);    // undefined
  a = 2;
}
fn1();
alert(a);    // 1

var b = 1;
function fn2(b){
  alert(b);    // 1
  b = 2;
}
fn2(b);
alert(b);    // 1
</script>

作用域、JS预解析机制:等您来吐槽!