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