search

Home  >  Q&A  >  body text

javascript - 理解(+Var)的运算方法

我刚刚加入到JavaScript阵营中,我一直没有找到关于(+Var)这个符号的任何信息。
请看《Convert HH:MM:SS string to seconds only in javascript》这篇文章中中答案部分。

// minutes are worth 60 seconds. Hours are worth 60 minutes.
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);

我也想使用这个代码进行转换,但上述方案显然不严谨,如果用户如'xx:03:ss'这个值并非NaN,所以我修改了代码,效果更佳,如下:

function convertHHMMSSToSeconds(time) {

// initialize seconds
var seconds = 0;

//ensure time
if (!time) {
    return seconds;
}


try {
    var hmsTab = time.split(':'); // split it at the colons

    // ensure that the hmsTab contains 3 values (hh,mm,ss)
    if (!hmsTab || hmsTab.length !== 3) {
        return seconds;
    }

    // initialize hh, mm and ss
    var hh = hmsTab[0] > 0 && hmsTab[0] < 60? +hmsTab[0] : 0;
    var mm =  hmsTab[1] > 0 && hmsTab[1] < 60 ? +hmsTab[1] : 0;
    var ss =  hmsTab[2] > 0 && hmsTab[2] < 60 ? +hmsTab[2] : 0;

    // return 0 if one variable is not valid 
    if(+hmsTab[0] !== hh ||+hmsTab[1] !== mm || +hmsTab[2] !== ss) {
        return seconds;
    }

    // minutes are worth 60 seconds. Hours are worth 60 minutes.
    seconds = (hh * 60 * 60) + (mm * 60) + ss;
}catch (error)
{
    seconds = 0;
}
return seconds && seconds>0 ? seconds : 0;

这只是个小插曲,我的问题依然是(+Var)到底代表什么意思?

原问题:What does (+var) means [duplicate]

PHP中文网PHP中文网2816 days ago473

reply all(1)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 13:13:13

    变量前加上+后,变量将转换为数字,进行数字运算。比如:

    var x = "3";
    var y = x + 10; // 310
    var z = +x + 10 // 13
    

    赋予x值为3,y=x + 3,运算结果为310,其中的+号为连接作用,这不难理解。z=+x + 10,运算结果为13,这是将+x的值3与后方的10做数字运算,所以结果13,这就是+var的用意。

    reply
    0
  • Cancelreply