美好的一天,我偶然發現了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