Javascript JS代码中的加号-为什么不';他们不是在这里吗

Javascript JS代码中的加号-为什么不';他们不是在这里吗,javascript,string,function,time,Javascript,String,Function,Time,我对Dagg Nabbit的回答很好奇 对 var seconds = (a[0]) * 60 * 60 + (a[1]) * 60 + (a[2]); 未按预期工作-它未计算秒数。 为什么?它们导致字符串隐式转换为数字。在浏览器的调试控制台中,尝试: > typeof +'1' "number" > typeof '1' "string" 它们导致将字符串隐式转换为数字。在浏览器的调试控制台中,尝试: > typeof +'1' "number" > typeo

我对Dagg Nabbit的回答很好奇

var seconds = (a[0]) * 60 * 60 + (a[1]) * 60 + (a[2]); 
未按预期工作-它未计算秒数。
为什么?

它们导致字符串隐式转换为数字。在浏览器的调试控制台中,尝试:

> typeof +'1'
"number"
> typeof '1'
"string"

它们导致将字符串隐式转换为数字。在浏览器的调试控制台中,尝试:

> typeof +'1'
"number"
> typeof '1'
"string"

只需补充说明:并非所有的加号运算符都是必需的:
a[0]*60*60+a[1]*60+(+a[2])将很好地工作只是一个旁注:并非所有的加号运算符都是必需的:
a[0]*60*60+a[1]*60+(+a[2])可以正常工作