Javascript 函数返回语句的代码解释

Javascript 函数返回语句的代码解释,javascript,Javascript,我正在学习javascript。。。有一个特别的挑战,我不明白为什么输出是这样的。。下面是代码: function addBinary(a,b) { var sum = a + b; var res= ""; while(sum > 0) { res = sum % 2 + res; sum = Math.floor(sum/2); } return res; } alert(addBinary(1,2)); /

我正在学习javascript。。。有一个特别的挑战,我不明白为什么输出是这样的。。下面是代码:

function addBinary(a,b) {

    var sum = a + b;
    var res= "";
    while(sum > 0) {
        res = sum % 2 + res;
        sum = Math.floor(sum/2);
    }
    return res;

}
alert(addBinary(1,2));
//产量为11

在这个addBinary函数中,我不理解的是为什么
res=sum%2+res第一次迭代后的空字符串===1

我理解模运算符和3%2=1背后的逻辑

但是我没有得到的是
res=sum%2+res中的
+res
表达式


如有任何解释,将不胜感激

它从余数运算符和以前收集的值中获取
0
1
,并将其分配给
res

       1       10  -> 110
res = sum % 2 + res;
但是我没有得到的是res=sum%2+res中的+res;表情

好的,在第一次迭代之后,第一个1存储在
res

 res = 1 + "" /*res*/
由于
res
以前是一个空字符串,
+
将这两个字符串连接为字符串,因此
res
现在包含
“1”
。现在循环继续进行,因为仍然需要1,因此在下一次迭代中,
sum%2
再次是
1
,行是:

 res = 1 + "1" /*res*/

因此,我们最终得到了结果
“11”

,感谢您的解释,现在它更有意义了!!我不知道的是这个表达式“sum%2+res;”的语法但现在我完全明白了。。当然,当你连接字符串和num它的字符串。。再次感谢乔纳斯;)