Javascript 语句的执行顺序

标签 javascript function variables

var confirm = confirm('Are you sure?');

我刚刚测试了这个语句,我得到了一个错误,指出 confirm 不是一个函数。

我立即检测到变量名正在覆盖它。但是我的问题是为什么?

我知道函数是一流的,声明一个与函数同名的变量会在相对范围内覆盖它。但我的困惑来自于我认为是从“右到左”的执行顺序,I.E.在确定目的地之前进行函数调用。

在这种情况下,变量是否在函数调用之前定义?

最佳答案

由于 JavaScript 的变量提升:

function myFunction() {
    // ...
    var confirm = confirm('Are you sure?');
    // ...
}

变成:

function myFunction() {
    var confirm;
    // ...
    confirm = confirm('Are you sure?');
    // ...
}

您需要执行以下操作来强化您的意思:

function myFunction() {
    // ...
    var confirm = window.confirm('Are you sure?');
    // ...
}

关于Javascript 语句的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27060411/

相关文章:

javascript - Azure 应用程序见解 Node js 模块无法正常工作 - Fetch API 无法加载错误

Javascript 函数不接受变量作为参数

python - 对列表的每个元素使用一个函数

variables - async/Await执行后结果为空

javascript - 使用变量指定选择框获取更改选择框的选定值

javascript - 如何查找字符串中两个字符之间的多个值 - JS

带参数和不带参数的 JavaScript onclick 函数

javascript - 如何在 ASP.NET MVC3 中从部分 View 包含 JavaScript

javascript - jQuery 函数与处理程序

ios - swift:声明公共(public)变量