总结:
[ 谁大最后取值就是谁 ]
a. 局部 > 全局同名变量;
b. 函数中与形参相同的变量赋值 > 形参,其余形参最大
c. 函数声明 > 同名变量声明;函数声明 < 同名变量赋值
d. 同名的函数声明或同名的变量定义(声明+赋值),后者覆盖前者(后者大)
1. 局部变量 > 全局同名变量(作用域中取变量规则)
![](https://img.haomeiwen.com/i16882747/943bea61cfe802b4.png)
2. 函数形参 > 函数名称
![](https://img.haomeiwen.com/i16882747/540a333cf16a9d81.png)
3. 函数形参 > 函数中arguments对象
![](https://img.haomeiwen.com/i16882747/472d5373528c2b70.png)
4. 函数形参 > 函数中同名未赋值变量
![](https://img.haomeiwen.com/i16882747/79a7a6f015afca0b.png)
5. 函数形参 < 函数中同名赋值变量
![](https://img.haomeiwen.com/i16882747/0f31f96d7ea57775.png)
[ var a = 1; 分为声明( var a )和赋值( a = 1 )两步 ]
[ 函数声明:function fn(){} 函数表达式:var fn = function(){} ]
6. 函数声明 > 同名变量声明;函数声明 < 同名变量赋值
![](https://img.haomeiwen.com/i16882747/f34ebd1453f9c67a.png)
7. 同名的函数声明或同名的变量定义(声明+赋值),后者覆盖前者
![](https://img.haomeiwen.com/i16882747/fe4353f4bc8cd40e.png)
网友评论