JS函数预解析(小记)

JS函数预解析(小记)

一,预解析:寻找var  function  形参
     a=undefined
    fn = function fn(){

  alert();

 }  
二,逐行解读代码:
    1.表达式
    2.函数调用(作用域)
        一 预解析:寻找var function 形参
        二 逐行解读代码:
  第二种情况 //当变量与函数名字相同时,丢变量,保函数
  第三种情况 //多script标签时,从上到下依次解析并解读每一个作用域。
  第四种情况//作用域链 : 执行表达式时,先在自己预解析中找,如果没有找到,会向它的父级作用域找,如果找不到,报错。
  第五种情况//执行表达式时,找到了变量,则只影响作用域,并赋值undefined。
  第六种情况//执行表达式时,找到了形参,同上。
  第七种情况//执行表达式时,同时有实参和形参时,实参传递给形参变量。
  第八种情况//执行表达式时,局部赋值变量,局部和全局没有声明变量,那么全局自动生成变量并且赋值。