仅在 Safari 中:ReferenceError 找不到变量

Sr.*_*der 8 javascript safari scope mobile-safari

我的许多脚本如下所示:

if (...) {

    const myvariable1 = document.querySelector('.class-1');
    const myvariable2 = document.querySelector('.class-2');

    function someFunction() {

        // Do something with myvariable1 or myvariable2

    }

    someFunction();

}
Run Code Online (Sandbox Code Playgroud)

它们在 Chrome、Firefox、Edge 和 Opera 上运行良好,但在 Safari 上我收到错误:

ReferenceError: Can't find variable myvariable1
Run Code Online (Sandbox Code Playgroud)

解决方法

如果我在 if 语句之前声明常量,代码就会工作......

const myvariable1 = document.querySelector('.class-1');
const myvariable2 = document.querySelector('.class-2');

if (...) {

    function someFunction() {

        // Do something with myvariable1 or myvariable2

    }

    someFunction();

}
Run Code Online (Sandbox Code Playgroud)

...但我不明白为什么,也不知道如何使常量在全球范围内可用。

也许有人可以向我解释 Safari 独有的行为。