I got a very unusual problem of adding and multiplying very big numbers ( 1e+100). So I've written simple functions that would operate on string representations of numbers, both as an input and an output.Multiplication:function multiply(a, b) {    if ((a | 0) == 0 || (b | 0) == 0) {        return '0';    }    a = a.split('').reverse();    b = b.split('').reverse();    var result = [];    for (var i = 0; a[i] >= 0; i++) {        for (var j = 0; b[j] >= 0; j++) {            if (!result[i + j]) {                result[i + j] = 0;            }            result[i + j] += a[i] * b[j];        }    }    for (var i = 0; result[i] >= 0; i++) {        if (result[i] >= 10) {            if (!result[i + 1]) {                result[i + 1] = 0;            }            result[i + 1] += parseInt(result[i] / 10);            result[i] %= 10;        }    }    return result.reverse().join('');}Addition:function add(a, b) {    if ((a | 0) == 0 && (b | 0) == 0) {        return '0';    }    a = a.split('').reverse();    b = b.split('').reverse();    var result = [];    for (var i = 0; (a[i] >= 0) || (b[i] >= 0); i++) {        var sum = (parseInt(a[i]) || 0) + (parseInt(b[i]) || 0);        if (!result[i]) {            result[i] = 0;        }        var next = ((result[i] + sum) / 10) | 0;        result[i] = (result[i] + sum) % 10;        if (next) {            result[i + 1] = next;        }    }    return result.reverse().join('');}Are there better ways of doing this job? Some additional edge cases or better loop conditions, maybe?
Multiplying and adding big numbers represented with strings
javascript;integer