JavaScript 缩小后不工作
JavaScript not working after minification
很抱歉没有复制整个代码,但我认为这应该足够了。在使用 Microsoft AJAX Minifier 进行缩小之前,我的代码运行良好。该程序在将所有变量重命名为漂亮的无意义的小名称方面做得很好,但我看到了一个我无法弄清楚的非常奇怪的错误。
在第 532 行有一个 var dt;
这就是为什么 dt 出现在 Chrome 的局部变量列表中但是当我执行第 592 行时它说
"Uncaught ReferenceError: dt is not defined".
有什么想法吗?
一个(唯一的?)可能的场景是:
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;
}
如需解释,请搜索 "Temporal Dead Zones" 和 "hoisting"。简而言之:let 是块级作用域,并且 let 声明被提升到块的开头,但是在遇到 let 语句之前对该变量的任何访问都会导致引用错误。
很抱歉没有复制整个代码,但我认为这应该足够了。在使用 Microsoft AJAX Minifier 进行缩小之前,我的代码运行良好。该程序在将所有变量重命名为漂亮的无意义的小名称方面做得很好,但我看到了一个我无法弄清楚的非常奇怪的错误。
在第 532 行有一个 var dt;
这就是为什么 dt 出现在 Chrome 的局部变量列表中但是当我执行第 592 行时它说
"Uncaught ReferenceError: dt is not defined".
有什么想法吗?
一个(唯一的?)可能的场景是:
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;
}
如需解释,请搜索 "Temporal Dead Zones" 和 "hoisting"。简而言之:let 是块级作用域,并且 let 声明被提升到块的开头,但是在遇到 let 语句之前对该变量的任何访问都会导致引用错误。