前端小白请教一个数字转换成字符串的问题

有如下两段代码

第一段代码

 var str = '';
        var aDiv =document.getElementById('big-box').getElementsByTagName('div');
        for (var i=0;i<100;i++) {
            str += '<div></div>';
        }
        document.getElementById('big-box').innerHTML= str;
        var length = Math.sqrt(aDiv.length);
        for (var i=0;i<length;i++) {
            for (var j=0;j<length;j++) {
                aDiv[i*length + j].style.left = j*49 + 'px';
                aDiv[i*length + j].style.top = i*49 + 'px';
                aDiv[i*length + j].innerHTML =i + j;
            }
        }

第二段代码

 for (i=0;i<10;i++) {
            for (j=0;j<10;j++) {
                document.getElementById('big-box').innerHTML += '<div style="left:'+ j*49 +'px;top:'+ i*49 +'px;">'+i+j+'</div>'
            }
        }

第一段代码里面的innerHTML是两个数字相加,而第二段代码则是字符串拼接,请问产生这种差异的原因是什么?
比如i=1;j=1;第一段代码显示2 而第二段代码显示11

第二段中的i 和 j 恰门面是字符串,会自动转型成字符串。你把i+j括号括起来应该就跟第一段代码一样了

document.getElementById('big-box').innerHTML += '

'+(i+j)+'
';
这么做,你这是运算符优先级问题。加号依次加过来,字符串加数字就成字符串了。
 document.getElementById('big-box').innerHTML += '<div style="left:'+ j*49 +'px;top:'+ i*49 +'px;">'+(i+j)+'</div>'

字符串连接数字要用parseInt()处理一下

没看懂,能把完整代码发一下我运行一下么