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是自动类型转换的