js中同名变量或者参数的优先级

在javascript代码中,可能会出现一些变量或者参数重名的现象,所以要确认一下到底是哪一个变量或者参数在起作用,下面就对此进行一下简单的罗列性介绍,希望能够给需要的朋友带来帮助。

一.局部的优先级要高于全局变量:

var a=1;
function func(){
  var a=2;
  console.log(a);
}
func();

以上的输出结果是2,说明局部变量覆盖了全局变量。

二.形式参数的优先级高于函数名称:

function func(func){
  console.log(func)
}
func(2)

以上代码的输出只说明形参的优先级要高于函数的名称。

三.形式参数的优先级高于arguments对象:

[JavaScript] 纯文本查看 复制代码

function func(arguments){
  console.log(arguments)
}
func(2)

以上函数的输出值是2,这说明形参的优先级要高于arguments对象。

四.形式参数的优先级要高于声明确为赋值的变量:

function func(webName){
  var webName;
  console.log(webName);
}
func("测试");

以上代码的输出值是"测试",这说明形参的优先级要高于声明却为赋值的变量。否则的话,此函数的输出值为undefined。

五.形式参数的优先级要低于赋值的变量:

function func(webName){
  webName="测试一";
  console.log(webName);
}
func("测试");

以上代码的输出值是"测试一",所以赋值的变量的优先级要高于形式参数。

发布了58 篇原创文章 · 获赞 0 · 访问量 6988

猜你喜欢

转载自blog.csdn.net/Mweb_demo/article/details/103361475
今日推荐