日期:2014-05-17  浏览次数:20597 次

js 内存溢出?求大神解答
JScript code

var temp1;
var temp2;
var numI;
var numJ;
for(var i=0;i<nums.length;i++){
  for(var j=i+1;j<nums.length;j++){
    numI = Number(nums[i]);//因为从cookie里取出的数字js是当字符串处理的 ,所以比较大小前先转成数字类型
    numJ = Number(nums[j]);
    if(numI<=numJ){
    temp1 = numI;
    numI = numJ;
    numJ = temp1;
    temp2 = ids[i];
    ids[i] = ids[j];
    ids[j] = temp2;
    }
}


我在myeclipse下面保存上面一段代码(冒泡排序)的时候就报错,说内存溢出,原因我找出来了,就是在调用js的Number函数的时候,这个地方的问题。如果我不调用Number函数就不报错。
问下大神们,这是为咩啊??

------解决方案--------------------
Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回 NaN)。 这东西不可能还内存溢出吧--

冒泡前面段可以理解,后面ids[i] ids[j] 这个干吗用的--
------解决方案--------------------
确认一下是否从cookie中取到值了
选 alert(nums[i]);

numI = Number(nums[i]);
可以改为numI = nums[i] *1 ;
js是自动类型转换的