JSFiddle - React, Tailwind, and code Playground

HTML

Number: <input type="text" ID="txtValue" value=""/>
<input type="button" value="Click to Test!" ID="btnRunTest" />

JavaScript

function runTest() {
        var num = document.getElementById("txtValue").value;
        num = isNaN(num * 1) ? 0 : num * 1;
        var myBitArray = new BitArray(null, num);

        alert(myBitArray.toString() + " = " + myBitArray.toNumber() + "\n"
                + "Compliment: " + myBitArray.getCompliment().toString() + " = " + myBitArray.getCompliment().toNumber() + "\n"
                + "Union with Comp: " + BitArray.getUnion(myBitArray, myBitArray.getCompliment()) + "\n"
                + "Intersect w Comp: " + BitArray.getIntersection(myBitArray, myBitArray.getCompliment()) + "\n"
                +"Difference w Comp: " + BitArray.getDifference(myBitArray, myBitArray.getCompliment()));

    }

    /* BitArray DataType */

    // Constructor
    function BitArray(size, bits) {
        // Private field - array for our bits
        this.m_bits = new Array();

        //.ctor - initialize as a copy of an array of true/false or from a numeric value
        if (bits && bits.length) {
            for (var i = 0; i < bits.length; i++)
                this.m_bits.push(bits[i] ? BitArray._ON : BitArray._OFF);
        } else if (!isNaN(bits)) {
            this.m_bits = BitArray.shred(bits).m_bits;
        }
        if (size && this.m_bits.length != size) {
            if (this.m_bits.length < size) {
                for (var i = this.m_bits.length; i < size; i++) {
                    this.m_bits.push(BitArray._OFF);
                }
            } else {
                for(var i = size; i > this.m_bits.length; i--){
                    this.m_bits.pop();
                }
            }
        }
    }

    /* BitArray PUBLIC INSTANCE METHODS */

    // read-only property - number of bits 
    BitArray.prototype.getLength = function () { return this.m_bits.length; };

    // accessor - get bit at index 
    BitArray.prototype.getAt = function (index) {
        if (index < this.m_bits.length) {
            return this.m_bits[index];
        }
        return null;
...