js隱式全局變量造成的bug示例代碼
更新時間:2014年04月22日 15:39:53 作者:
一段js代碼遇到一個bug,由于中間的隱式全局變量造成的,通過谷歌瀏覽器的js調(diào)試器才找到問題所在,下面將代碼與大家分享下
一段js代碼遇到一個bug,由于中間的隱式全局變量造成的,
由于代碼較多,通過谷歌瀏覽器的js調(diào)試器才找到問題所在,
話說本人的電腦無論如何都裝不上fiefox,從去年開始嘗試了多次,均以失敗告終,
不過谷歌的調(diào)試也挺好用的。
簡化代碼如下:
$(function(){
var pageNo = 2;//這個參數(shù)是變化的
var pageSize = 10;
test();
paginate(pageNo,pageSize);//由于 test() 方法覆蓋pageNo,導致pageNo始終等于1
});
function test(){
pageNo = 1;//全局變量,覆蓋之前的pageNo ,相當于在js頂部寫 var pageNo = 1
//這里改為 var pageNo = 1;就可以了
//do,,,
}
function paginate(pageNo,pageSize){
window.location.href = "user_list.action?pageNo="+pageNo+"&pageSize="+pageSize;
}
在js中建議所有的變量均用var 聲明,并且所有的變量都可以寫到頂部,因為js沒有塊級作用域。
由于代碼較多,通過谷歌瀏覽器的js調(diào)試器才找到問題所在,
話說本人的電腦無論如何都裝不上fiefox,從去年開始嘗試了多次,均以失敗告終,
不過谷歌的調(diào)試也挺好用的。
簡化代碼如下:
復制代碼 代碼如下:
$(function(){
var pageNo = 2;//這個參數(shù)是變化的
var pageSize = 10;
test();
paginate(pageNo,pageSize);//由于 test() 方法覆蓋pageNo,導致pageNo始終等于1
});
function test(){
pageNo = 1;//全局變量,覆蓋之前的pageNo ,相當于在js頂部寫 var pageNo = 1
//這里改為 var pageNo = 1;就可以了
//do,,,
}
function paginate(pageNo,pageSize){
window.location.href = "user_list.action?pageNo="+pageNo+"&pageSize="+pageSize;
}
在js中建議所有的變量均用var 聲明,并且所有的變量都可以寫到頂部,因為js沒有塊級作用域。
您可能感興趣的文章:
- 基于JavaScript 聲明全局變量的三種方式詳解
- javascript中局部變量和全局變量的區(qū)別詳解
- Javascript全局變量var與不var的區(qū)別深入解析
- javascript中運用閉包和自執(zhí)行函數(shù)解決大量的全局變量問題
- javascript全局變量封裝模塊實現(xiàn)代碼
- JavaScript中全局變量、函數(shù)內(nèi)變量以及常量表達式的效率測試
- 理運用命名空間讓js不產(chǎn)生沖突避免全局變量的泛濫
- 淺談JavaScript的全局變量與局部變量
- JS全局變量和局部變量最新解析
- Javascript學習之談談JS的全局變量跟局部變量(推薦)
- 探討JavaScript中聲明全局變量三種方式的異同
- JavaScript防止全局變量污染的方法總結(jié)