JavaScript中一般变量、函数、函数形参、函数arguments对象、函数中与形参同名变量优先级

231 阅读1分钟

总结:

[ 谁大最后取值就是谁 ]

a. 局部 > 全局同名变量;

b. 函数中与形参相同的变量赋值 > 形参,其余形参最大

c. 函数声明 > 同名变量声明;函数声明 < 同名变量赋值

d. 同名的函数声明或同名的变量定义(声明+赋值),后者覆盖前者(后者大)

  1. 局部变量 > 全局同名变量(作用域中取变量规则)

局部>全局同名变量

  1. 函数形参 > 函数名称

函数形参>函数名称

  1. 函数形参 > 函数中arguments对象

函数形参>arguments对象

  1. 函数形参 > 函数中同名未赋值变量

函数形参 > 函数中同名未赋值变量

  1. 函数形参 < 函数中同名赋值变量

函数形参 < 函数中同名赋值变量

[ var a = 1;  分为声明( var a )和赋值( a = 1 )两步 ]

[ 函数声明:function fn(){}   函数表达式:var fn = function(){} ]

  1. 函数声明 > 同名变量声明;函数声明 < 同名变量赋值

函数声明 > 同名变量声明;函数声明 < 同名变量赋值

  1. 同名的函数声明或同名的变量定义(声明+赋值),后者覆盖前者

同名的函数声明或同名的变量定义(声明+赋值),后者覆盖前者