标签:fine star 同名 词法分析 直接 block 步骤 过程 调用
所有的变量声明,都会提升到最顶部,但不会提升赋值
所有的函数声明,都会提升到最顶部,但不会提升函数的调用
如果同时有多个 var 声明的相同的变量,后面的 var 将被忽略
如果同时有多个同名的函数,后面的函数将会覆盖前面的函数
如果声明的变量和声明的函数同名,声明的函数将会覆盖声明的变量
先分析函数形参(默认值为undefined),再分析形参赋值(没有形参的直接忽略此步骤)
分析函数体中所有的变量声明:
2.1 如果变量名与形参名相同时,直接忽略var;
2.2 如果变量名与形参名不同时,就相当于声明了一个变量,如var foo,值为undefined;
分析函数体中所有的函数声明,
3.1 如果函数名与变量名相同,函数整体将作为变量的值;
3.2 如果函数名与变量名不相同,相当于var 函数名 = function 函数名 () {};
函数执行过程分为2步:
词法分析过程;
执行过程
标签:fine star 同名 词法分析 直接 block 步骤 过程 调用
原文地址:https://www.cnblogs.com/hhmmpp/p/10993007.html