javascript变量作为函数[重复]

问题描述 投票:0回答:1

如果将 JavaScript 变量作为函数调用,那么其工作过程是怎样的?

let a=5;
function show(){
  a=10;
  function a(){};
  return a;
}
let res=show();
console.log(a,res); //output:5 10

谁能解释一下为什么 a 显示为 5,函数 a(){} 是什么意思?

javascript function variables ecmascript-6
1个回答
0
投票

在 JavaScript 中,所有

function
声明都被提升到作用域的顶部。函数本身创建一个scope,所以在这种情况下,代码实际上被解释为:

let a=5;
function show(){
  function a(){};
  a=10;
  return a;
}
let res=show();

这意味着外部

a
参考永远不会改变。 一个相关的SO问题:函数声明的javascript范围

© www.soinside.com 2019 - 2024. All rights reserved.