js隐式全局变量造成的bug示例代码
js隐式全局变量造成的bug示例代码
发布时间:2016-12-30 来源:查字典编辑
摘要:一段js代码遇到一个bug,由于中间的隐式全局变量造成的,由于代码较多,通过谷歌浏览器的js调试器才找到问题所在,话说本人的电脑无论如何都装...

一段js代码遇到一个bug,由于中间的隐式全局变量造成的,

由于代码较多,通过谷歌浏览器的js调试器才找到问题所在,

话说本人的电脑无论如何都装不上fiefox,从去年开始尝试了多次,均以失败告终,

不过谷歌的调试也挺好用的。

简化代码如下:

复制代码 代码如下:

$(function(){

var pageNo = 2;//这个参数是变化的

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教程学习
编程开发子分类