美好的一天,我偶然发现了 JS 中变量范围的问题。我有这样的功能
var address = ...; //it may be or may not be defined earlier.
// It is not the only variable passed to the function
function search() {
window.location.search = address;
}
但我需要确保已定义此变量,所以我这样做
function search() {
function check(value) {
if(!value) {
value = "1";
}
return value;
}
check(address);
window.location.search = address;
}
但有时我得到的是未定义的,传递给 window.location.search,因为 check() 确实正确返回了“1”;
你能指出我的错误吗?
[更新]
我应该早点说-我只是在寻找更好的方法来做到这一点。如果检查会正确,当然很简单,但 $address 变量不是唯一的你可以像这样描绘它
totaladdress = address1;
totaladdress += address2;
totaladdress += address3;
totaladdress += address4;
totaladdress += address5;
...
window.location.search = totaladdress;
所以我需要一个函数来检查它们(例如 check(address1);) 并避免几十个 IF 以使代码更清晰。