javascript - 期望在 Javascript 中未定义

标签 javascript

我看到了一些 Javascript 代码,我偶然发现了这样的东西:

function() {
    if(true) {
        var a = 5;
    }
    alert(a);
}

我很确定这会输出 undefined 但它没有?谁能告诉我为什么?

最佳答案

JavaScript 具有函数级作用域,而不是 block 级作用域。

var 语句被提升,因此您的代码等同于:

function() {
    var a;
    if(true) {
        a = 5;
    }
    alert(a);
}

如果 JavaScript 有 block 级范围,那么它仍然不会输出 undefined。由于 aalert 语句中未声明,您将触发引用错误。

关于javascript - 期望在 Javascript 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064544/

相关文章:

javascript - 使用正则表达式捕获特殊字符之间的字符串段

javascript - React 中动态创建的元素 - 如何进行控制?

javascript - 我正在尝试创建一个基于单选按钮的温度转换程序

javascript - 了解元素焦点如何与 JavaScript 配合使用

javascript - 发布 base64 数据 JavaScript/jQuery

javascript - 如何使用 .text() 在文本旁边打印变量

javascript - 如何更新嵌入的 svg 元素的源

javascript - 查询 : Adding new <Li> inside <Div> <UL>

javascript - 如何显示每个第 n 个标签以处理 fusionCharts 中的长 x 轴标签?

javascript - Kendo UI MVC调用javascript嵌套函数