gpt4 book ai didi

javascript - 对这段 JavaScript 代码片段感到困惑

转载 作者:数据小太阳 更新时间:2023-10-29 04:06:26 25 4
gpt4 key购买 nike

对于这个片段,全局变量“a”的计算结果为 5 并不让我感到惊讶。

http://jsfiddle.net/MeiJsVa23/gZSxY/ :

var a = 10;

function func(){
a = 5;
}

func(); // expect global variable 'a' to be modified to 5;

alert(a); // and this prints out 5 as expected. No surprise here.

但是为什么对于这个代码片段,全局变量“a”的计算结果是 10 而不是 5?就好像 a = 5 从未发生过一样。

http://jsfiddle.net/MeiJsVa23/2WZ7w/ :

var a = 10;

function func(){
a = 5;
var a = 23;
}

func(); // expect global variable 'a' to be modified to 5;

alert(a); // but this prints out 10!! why?

最佳答案

这是由于变量提升:使用 var 关键字定义的任何内容都会“提升”到当前范围的顶部,从而创建局部变量 a。请参阅:http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting

关于javascript - 对这段 JavaScript 代码片段感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com