JavaScript缩小后不工作

时间:2016-06-14 12:57:59

标签: javascript minify

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

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

  

“未捕获的ReferenceError:未定义dt”。

有什么想法吗?

stepping through code

1 个答案:

答案 0 :(得分:2)

为了先前用library(missForest) library(dplyr) myfunction <- function (originaldf, proceseddf, nonproceseddf, nameofprocesseddf=character){ NRMSE <- nrmse(proceseddf, nonproceseddf, originaldf) comment(nameofprocesseddf) <- nameofprocesseddf results <- as.data.frame(list(comment(nameofprocesseddf), NRMSE)) names(results) <- c("Dataset", "NRMSE") return(results) } a <- data.frame(value = rnorm(100), cat = c(rep(1,50), rep(2,50))) da1 <- data.frame(value = rnorm(100,4), cat2 = c(rep(2,50), rep(3,50))) dataframes <- dir(pattern = ".txt") list_dataframes <- llply(dataframes, read.table, header = T, dec=".", sep=",") n <- length(dataframes) # Here is where I do not know how to get the name of the `i` dataframe for (i in 1:n){ modified_list <- llply(list_dataframes, myfunction, originaldf = a, nonproceseddf = da1, proceseddf = list_dataframes[i], nameof processeddf= names(list_dataframes[i])) write.table(file = sprintf("myfile/%s_NRMSE20%02d.txt", dataframes[i]), modified_list[[i]], row.names = F, sep=",") } 声明的变量的变量赋值,可能会看到参考错误的一个(唯一的?)可能情景:

var

在精神上类似(const类似于让关于TDZ):

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

搜索&#34; Temporal Dead Zones&#34;和#34;吊装&#34;。简而言之:let是块级作用域,并且let声明被提升到块的开头,但是在遇到let语句之前对该变量的任何访问都会导致引用错误。