Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
隐式类型变量的javascript问题_Javascript_Variables_Typed - Fatal编程技术网

隐式类型变量的javascript问题

隐式类型变量的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

请原谅这个新手问题(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 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", ""));