javascript - 吊装的困惑

标签 javascript hoisting

考虑这两种稍微不同的提升方式......

mylocation = "dublin" 
function outputPosition() {
    alert(mylocation);
    mylocation = "fingal" ;
    alert(mylocation);
}
outputPosition();

这将输出“fingal”,然后是“fingal”

mylocation = "dublin" 
function outputPosition() {
    alert(mylocation);
    var mylocation = "fingal" ;
    alert(mylocation);
}
outputPosition();

这将输出“undefined”和“fingal”

为什么?

最佳答案

一旦您在 javascript 函数中使用 var 关键字声明变量,无论您将此声明放在何处 - 在函数顶部或按钮处,它都将被视为局部变量。这就是为什么当您尝试在 var 声明之前获取此类变量的值时,您会得到 undefined 的原因。

关于javascript - 吊装的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753373/

相关文章:

c# - 为什么 C# 中不存在提升?

javascript - Javascript 中的名称解析?

javascript 函数提升不起作用

Javascript:函数提升

javascript - 使用JS递归调用xml web服务

javascript - 在 JavaScript 中继承时实例化函数有什么意义?

javascript - 以编程方式删除 Spotify 播放列表

javascript - jQuery 对象上下文的区别

Javascript 全局引用错误

javascript - 设置子节点的属性