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

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

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

具体来说:

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

以下是一个示例:

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

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

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

相关文章
|
5月前
|
JavaScript 前端开发
null、未定义或未声明的变量之间有什么区别
null、未定义或未声明的变量之间有什么区别
|
6月前
|
C语言 C++ 开发者
C/C++陷阱——变量名和函数名的冲突问题
C/C++陷阱——变量名和函数名的冲突问题
|
6月前
|
存储 安全 编译器
C/C++陷阱——临时变量的产生和特性
C/C++陷阱——临时变量的产生和特性
|
6月前
结构体变量的定义以及与结构体变量调用的两种方式
结构体变量的定义以及与结构体变量调用的两种方式
88 0
|
存储 C语言 Perl
西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?
今天给大家讲一下什么是局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。
西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?
|
存储 C语言 C++
函数的内部处理及全局变量和局部变量
函数的内部处理及全局变量和局部变量
121 0
函数的内部处理及全局变量和局部变量
|
存储 数据可视化 小程序
在函数中使用局部变量并且通过局部变量返回函数值的方案来了
感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
92 0
|
安全 Unix vr&ar
一文刨析C/C++全局常量的定义
一文刨析C/C++全局常量的定义
补充上一篇,严格模式下不同场景下函数参数名的区别
补充上一篇,严格模式下不同场景下函数参数名的区别
70 0