gpt4 book ai didi

缩小后 JavaScript 不工作

转载 作者:行者123 更新时间:2023-11-29 21:24:35 26 4
gpt4 key购买 nike

很抱歉没有复制整个代码,但我认为这应该足够了。在使用 Microsoft AJAX Minifier 缩小之前,我的代码运行良好。该程序在将所有变量重命名为漂亮的小而无意义的名称方面做得很好,但我看到了一个我无法弄清楚的非常奇怪的错误。

在第 532 行有一个 var dt; 这就是为什么 dt 出现在 Chrome 的局部变量列表中但是当我执行第 592 行时它说

"Uncaught ReferenceError: dt is not defined".

有什么想法吗?

stepping through code

最佳答案

对于之前使用 var 声明的变量,您可能会看到变量赋值引用错误的一个(唯一?)可能的情况是:

var dt;
{
dt = []; // Reference error due to hoisting & TDZ
let dt;
}

本质上类似的是(关于TDZ,const类似于let):

var dt;
{
dt = []; // Reference error due to hoisting & TDZ
const dt = 1;
}

如需解释,请搜索“临时死区”和“提升”。简而言之:let 是 block 级作用域,并且 let 声明被提升到 block 的开头,但是在遇到 let 语句之前对该变量的任何访问都会导致引用错误。

关于缩小后 JavaScript 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com