Javascript 语句执行顺序

Javascript Statement Order of Execution

本文关键字:顺序 执行 语句 Javascript      更新时间:2023-09-26
var confirm = confirm('Are you sure?');

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

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

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

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

由于 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?');
    // ...
}