Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何避免使用此函数污染全局命名空间?_Javascript_Loops_Namespaces_Prompt - Fatal编程技术网

Javascript 如何避免使用此函数污染全局命名空间?

Javascript 如何避免使用此函数污染全局命名空间?,javascript,loops,namespaces,prompt,Javascript,Loops,Namespaces,Prompt,我正在尝试创建一个循环直到给出匹配答案的函数,有更好的方法吗?我意识到我正在污染全局名称空间设置“loopBoolean=false/true” 不知道你为什么如此烦恼,因为loopBoolean只是一个函数范围变量,但你可以使用break

我正在尝试创建一个循环直到给出匹配答案的函数,有更好的方法吗?我意识到我正在污染全局名称空间设置“loopBoolean=false/true”


不知道你为什么如此烦恼,因为
loopBoolean
只是一个函数范围变量,但你可以使用
break
function userPrompt() {
    while(true){
        var userChoice = prompt("type something").toLowerCase();
        if(userChoice === "gogo"){
            alert("good answer!");
            break;
        }
    }
}
userPrompt();

不知道为什么这么麻烦,因为
loopBoolean
只是一个函数范围变量,但您可以使用
break
function userPrompt() {
    while(true){
        var userChoice = prompt("type something").toLowerCase();
        if(userChoice === "gogo"){
            alert("good answer!");
            break;
        }
    }
}
userPrompt();

在函数中声明变量
var loopBoolean
不会污染全局命名空间

问题是如果您没有使用
var
关键字

重写的更好方法是:

 while(prompt("type something").toLowerCase() != "gogo"){    
   // do sth if you need
 }
 alert("good answer!");

通过在函数中声明变量
var loopBoolean
insdie,您不会污染全局命名空间

问题是如果您没有使用
var
关键字

重写的更好方法是:

 while(prompt("type something").toLowerCase() != "gogo"){    
   // do sth if you need
 }
 alert("good answer!");