js隱式全局變量造成的bug示例代碼
更新時(shí)間:2014年04月22日 15:39:53 作者:
一段js代碼遇到一個(gè)bug,由于中間的隱式全局變量造成的,通過(guò)谷歌瀏覽器的js調(diào)試器才找到問(wèn)題所在,下面將代碼與大家分享下
一段js代碼遇到一個(gè)bug,由于中間的隱式全局變量造成的,
由于代碼較多,通過(guò)谷歌瀏覽器的js調(diào)試器才找到問(wèn)題所在,
話說(shuō)本人的電腦無(wú)論如何都裝不上fiefox,從去年開(kāi)始嘗試了多次,均以失敗告終,
不過(guò)谷歌的調(diào)試也挺好用的。
簡(jiǎn)化代碼如下:
$(function(){
var pageNo = 2;//這個(gè)參數(shù)是變化的
var pageSize = 10;
test();
paginate(pageNo,pageSize);//由于 test() 方法覆蓋pageNo,導(dǎo)致pageNo始終等于1
});
function test(){
pageNo = 1;//全局變量,覆蓋之前的pageNo ,相當(dāng)于在js頂部寫(xiě) var pageNo = 1
//這里改為 var pageNo = 1;就可以了
//do,,,
}
function paginate(pageNo,pageSize){
window.location.href = "user_list.action?pageNo="+pageNo+"&pageSize="+pageSize;
}
在js中建議所有的變量均用var 聲明,并且所有的變量都可以寫(xiě)到頂部,因?yàn)閖s沒(méi)有塊級(jí)作用域。
由于代碼較多,通過(guò)谷歌瀏覽器的js調(diào)試器才找到問(wèn)題所在,
話說(shuō)本人的電腦無(wú)論如何都裝不上fiefox,從去年開(kāi)始嘗試了多次,均以失敗告終,
不過(guò)谷歌的調(diào)試也挺好用的。
簡(jiǎn)化代碼如下:
復(fù)制代碼 代碼如下:
$(function(){
var pageNo = 2;//這個(gè)參數(shù)是變化的
var pageSize = 10;
test();
paginate(pageNo,pageSize);//由于 test() 方法覆蓋pageNo,導(dǎo)致pageNo始終等于1
});
function test(){
pageNo = 1;//全局變量,覆蓋之前的pageNo ,相當(dāng)于在js頂部寫(xiě) var pageNo = 1
//這里改為 var pageNo = 1;就可以了
//do,,,
}
function paginate(pageNo,pageSize){
window.location.href = "user_list.action?pageNo="+pageNo+"&pageSize="+pageSize;
}
在js中建議所有的變量均用var 聲明,并且所有的變量都可以寫(xiě)到頂部,因?yàn)閖s沒(méi)有塊級(jí)作用域。
您可能感興趣的文章:
- 基于JavaScript 聲明全局變量的三種方式詳解
- javascript中局部變量和全局變量的區(qū)別詳解
- Javascript全局變量var與不var的區(qū)別深入解析
- javascript中運(yùn)用閉包和自執(zhí)行函數(shù)解決大量的全局變量問(wèn)題
- javascript全局變量封裝模塊實(shí)現(xiàn)代碼
- JavaScript中全局變量、函數(shù)內(nèi)變量以及常量表達(dá)式的效率測(cè)試
- 理運(yùn)用命名空間讓js不產(chǎn)生沖突避免全局變量的泛濫
- 淺談JavaScript的全局變量與局部變量
- JS全局變量和局部變量最新解析
- Javascript學(xué)習(xí)之談?wù)凧S的全局變量跟局部變量(推薦)
- 探討JavaScript中聲明全局變量三種方式的異同
- JavaScript防止全局變量污染的方法總結(jié)
相關(guān)文章
javascript 實(shí)現(xiàn)劃詞標(biāo)記劃詞搜索功能
在頁(yè)面中加上這串代碼就行了,同時(shí)還有搜索功能。2009-10-10
純js實(shí)現(xiàn)無(wú)縫滾動(dòng)功能代碼實(shí)例
這篇文章主要介紹了純js實(shí)現(xiàn)無(wú)縫滾動(dòng)功能代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
ES6學(xué)習(xí)教程之Map的常用方法總結(jié)
Map 是 ES6 中新增的一種數(shù)據(jù)結(jié)構(gòu),與 Set 一起添加,其實(shí)功能都差不多。下面這篇文章主要給大家總結(jié)介紹了關(guān)于ES6學(xué)習(xí)教程之Map的常用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08
JavaScript制作簡(jiǎn)易計(jì)算器(不用eval)
這篇文章主要為大家詳細(xì)介紹了JavaScript制作簡(jiǎn)易計(jì)算器的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
JavaScript性能優(yōu)化之小知識(shí)總結(jié)
JavaScript的性能問(wèn)題不容小覷,這就需要我們開(kāi)發(fā)人員在編寫(xiě)JavaScript程序時(shí)多注意一些細(xì)節(jié),本文給大家介紹javascript性能優(yōu)化之小知識(shí)總結(jié),需要的朋友可以參考下2015-11-11
JavaScript的removeChild()函數(shù)用法詳解
removechild 函數(shù)可以刪除父元素的指定子元素,通過(guò)本文給大家介紹javascript的removeChild()函數(shù)用法,對(duì)js removechild函數(shù)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12
最常見(jiàn)和最有用的字符串相關(guān)的方法詳解
本文主要介紹了最常見(jiàn)和最有用的字符串相關(guān)的方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
JS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)并傳值
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)并傳值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06

