形参和全局变量同名时哪个优先级更高

在JavaScript中,当形参(函数参数)和全局变量同名时,形参的优先级高于全局变量。这是因为当函数被调用时,形参会在函数的作用域内被创建,并且这个作用域会覆盖全局作用域。

具体来说:

  1. 函数作用域:JavaScript中的函数在执行时会创建一个新的作用域(也称为局部作用域)。这个作用域包含了函数内部声明的所有变量、函数和形参。
  2. 作用域链:在JavaScript中,当查找一个变量时,会首先在当前作用域中查找。如果找不到,就会沿着作用域链向上查找,直到找到全局作用域。
  3. 形参和全局变量:当形参和全局变量同名时,由于形参是在函数作用域内声明的,因此它会在该作用域内被创建。当在函数内部引用这个变量时,会首先在当前作用域(即函数作用域)中查找,找到形参后就不会继续向上查找全局变量了。

以下是一个示例:

var globalVar = '我是全局变量';  
  
function myFunction(globalVar) {  
    console.log(globalVar); // 输出 '我是形参',而不是 '我是全局变量'  
}  
  
myFunction('我是形参');

在这个示例中,虽然有一个名为globalVar的全局变量,但在myFunction函数内部,由于形参globalVar的存在,当调用console.log(globalVar);时,会输出形参的值'我是形参',而不是全局变量的值'我是全局变量'

因此,形参的优先级高于全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值