需要帮助了解JavaScript脚本

时间:2015-08-18 21:39:16

标签: javascript global-variables local-variables

我是JavaScript的新手,我正在尝试理解这个特定脚本的流程(这是教科书中的一个例子)。

var clunkCounter = 0;
thingamajig(5);
console.log(clunkCounter);


function clunk(times){
 var num = times; 
 while (num > 0){
     display("clunk");
     num = num - 1; 
 }
}

function thingamajig(size){
 var facky = 1;
 clunkCounter = 0;
 if (size == 0){
    display("clank");
}
else if (size ==1){
    display("thunk");
}
else{
    while (size > 1){
        facky = facky * size; 
        size = size - 1; 
    }
    clunk(facky); 
 }
}

function display(output){
 console.log(output);
 clunkCounter = clunkCounter + 1;
}

我知道这个特定函数集的调用结果是字符串“clunk”应该输出到控制台120次,然后值120应该输出到控制台。

我的问题是这个 - 为什么声明全局变量clunkCounter并将其值设置为0,只是在thingamajig函数中做同样的事情?这不是多余的吗?我知道如果var clunckCounter = 0;声明不存在,同样的效果将会实现(没有在thingamajig函数中使用'var'关键字声明clunkCounter,它变成全局变量而不是局部变量)。我在这个假设中是否正确?

1 个答案:

答案 0 :(得分:2)

看起来作者希望clunkCounter每次调用0时都会thingamajig因为displaythingamajig调用)修改了计数器

clunkCounter原始声明的目的是使其全局化,初始化是多余的。