隐式类型变量的javascript问题
请原谅这个新手问题(Javascript新手!) 在html页面中,我有一组带有名称和数字的图像:img1 img2 img3。。。img12。。。 还有一个JS函数,我需要从(比如)img5到最后一个img进行迭代 如果我这样写:隐式类型变量的javascript问题,javascript,variables,typed,Javascript,Variables,Typed,请原谅这个新手问题(Javascript新手!) 在html页面中,我有一组带有名称和数字的图像:img1 img2 img3。。。img12。。。 还有一个JS函数,我需要从(比如)img5到最后一个img进行迭代 如果我这样写: function iterateImg(objImgID) {var imgNum = objImgID.replace("img",""); for (i=imgNum+1;i<20;i++) .../... function iterat
function iterateImg(objImgID) {var imgNum = objImgID.replace("img","");
for (i=imgNum+1;i<20;i++)
.../...
function iterateImg(objImgID){var imgNum=objImgID.replace(“img”,即“”);
对于(i=imgNum+1;i
行了
或者更好(因为我喜欢正则表达式)
有几种方法可以强制JavaScript将其转换为数字
var imgNum = parseInt(objImgID.replace("img", ""));
parseInt(x,10)
-10是数字的基数
x-0
-减法只适用于数字
x*1
-也要相乘
现在,当您执行var i=imgNum+1
时,它将执行2个整数的加法。使用parseInt
将字符串转换为数字
var imgNum = parseInt(objImgID.replace("img", ""));
好的,你们为什么用parseInt()
而不是Number()
?我将假设存在某种速度方面或其他方面?@Joseph,性能相当不错,但如果您对具体数字感兴趣,请看这里:不要忘了用var声明“I”。如果不这样做,“I”可能会附加到全局范围(窗口).伙计们,我得把你们都打败!在不到10分钟内回答4个问题,太好了!使用Number
和parseInt
之间有功能上的区别吗?还是仅仅是风格上的问题?对于那些感兴趣的人来说。看起来至少有一点功能上的区别。例如Number(true)===1
和parseInt(true)
结果为NaN
var imgNum = parseInt(objImgID.replace("img",""), 10);
var imgNum = parseInt(objImgID.replace("img", ""));