美好的一天,我偶然发现了JS中变量范围的问题。 我有这样JavaScript中的变量范围,函数不返回正确的值
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”;
请你指出我的错误吗?
[更新]
我应该早点说 - 我只是在寻找更好的方法来做到这一点。 当然简单,如果检查会得到它的权利,但在$地址变量是不是唯一一个 你能想象像这样
totaladdress = address1;
totaladdress += address2;
totaladdress += address3;
totaladdress += address4;
totaladdress += address5;
...
window.location.search = totaladdress;
所以我需要一个函数进行检查(如检查(地址1);)并避免几十个IF来使代码更清洁。
如果可以或不可以被定义你需要使用'typeof运算富===“undefined'' 。 – elclanrs
你想要'window.location.search = check(address);'?你不会在任何地方使用'check'调用的结果 – Bergi