JSFiddle - React, Tailwind, and code Playground

HTML

<table>
    <tr>
        <th rowspan="2">value</th>
        <th colspan="2">frexp(value)</th>
        <th rowspan="2">ldexp(mantissa, exponent)</th>
    </tr>
    <tr>
        <th>mantissa</th>
        <th>exponent</th>
    </tr>
    <script>
        [0, 1, 1e100, 1e-100, Math.pow(2, 1023), Math.pow(2, -1023), 5e-324,
        NaN, Infinity, -Infinity].forEach(function(value) {
            var mantExp = frexp(value),
                reconstructed = ldexp(mantExp[0], mantExp[1]);
            document.write("<tr><td>" + value +
                "</td><td>" + mantExp[0] + "</td><td>" + mantExp[1] +
                "</td><td>" + reconstructed + "</td></tr>");
        });
    </script>
</table>

CSS

th, td {
    border: 1px solid;
}
td {
    text-align: right;
}

JavaScript

/*
 * frexp() and ldexp() for JavaScript
 * Handles regular floats and denorms
 * Author: Bert Freudenberg <[email protected]>
 */

function frexp(value) {
    if (value === 0) return [value, 0];
    var data = new DataView(new ArrayBuffer(8));
    data.setFloat64(0, value);
    var bits = (data.getUint32(0) >>> 20) & 0x7FF;
    if (bits === 0) {
        data.setFloat64(0, value * Math.pow(2, 64));
        bits = ((data.getUint32(0) >>> 20) & 0x7FF) - 64;
    }
    var exponent = bits - 1022,
        mantissa = ldexp(value, -exponent);
    return [mantissa, exponent];
}

function ldexp(mantissa, exponent) {
    return exponent <= 1023 ? 
        mantissa * Math.pow(2, exponent) :
        mantissa * Math.pow(2, 1023) * Math.pow(2, exponent - 1023);
}