SOURCE

// 超大数加法运算,返回字符串
function add(a, b) {
    // 将两个数转成数组并reverse
    var a1 = String(a).split('').reverse();
    var b1 = String(b).split('').reverse();

    // 获取位数较大的数,做循环操作
    var len = Math.max(a1.length, b1.length);
    // 结果数组
    var sum = [];
    // 用于缓存进位
    var next = 0;

    // 从个位数开始循环,依次操作两个数相同位相加
    for(var i=0; i<len; i++) {
        var temp = Number(a1[i] || 0) + Number(b1[i] || 0) + Number(next);
        // 两位数进位操作,个位数保存至sum[i],十位数缓存到next
        if(temp > 9) {
            sum[i] = String(temp).split('')[1];
            next = String(temp).split('')[0];
        }else{
           sum[i] = temp; 
           next = 0;
        }
    }
    return sum.reverse().join('');
}

console.log(add('12321321321321472132091', '28132187218468127482147120'));
console 命令行工具 X clear

                    
>
console