原生态javascript写的计算器

原生态javascript写的计算器1626
一个简洁的网页JS计算器。
        function findArr(a, c) {
            for (var b = 0; b < a.length; b++) {
                if (a[b] == c) {
                    return true
                }
            }
            return false
        }
        function getClass(d, f) {
            if (document.getElementsByClassName) {
                return d.getElementsByClassName(f)
            } else {
                var a = [];
                var e = document.getElementsByTagName("*");
                for (var c = 0; c < e.length; c++) {
                    var b = e[c].className.split(" ");
                    if (findArr(b, f)) {
                        a.push(e[c])
                    }
                }
                return a
            }
        };
        window.onload = function () {
            var aNum = getClass(document, 'num');
            var oText = document.getElementById('text');
            var aPer = getClass(document, 'oper');
            var oPer = document.getElementById('per');
            var oText1 = document.getElementById('text1');
            var oDeng = getClass(document, 'deng')[0];
            var oSq = getClass(document, 'sq')[0];
            var oRec = getClass(document, 'rec')[0];
            var oZheng = getClass(document, 'zheng')[0];
            var oOn = getClass(document, 'on')[0];
            var oOff = getClass(document, 'off')[0];
            var oClea = getClass(document, 'clea')[0];
            var bOnOrOffClick = false;

            function fnNum(a) {


                var bClear = false;
                oText.value = '0'


                for (var i = 0; i < aNum.length; i++) {
                    aNum[i].onclick = function () {
                        if (!bOnOrOffClick) return;

                        if (bClear) {

                            bClear = false;
                        }


                        if (oText.value.indexOf('.') != -1) {
                            if (this.innerHTML == '.') {
                                return;
                            }
                        }
                        if (oPer.value && oText.value && oText1.value == '') {
                            oText1.value = oText.value;
                            oText.value = '';
                        }

                        var re = /^0\.{1}\d+$/;
                        var re1 = /^([0]\d+)$/;
                        oText.value += this.innerHTML;


                        if (re.test(oText.value)) {
                            return;
                        }

                        if (re1.test(oText.value)) {
                            oText.value = this.innerHTML;
                        }
                    }
                    //符号部分的添加
                    for (var j = 0; j < aPer.length; j++) {
                        aPer[j].onclick = function () {

                            if (oText.value && oPer.value && oText1.value) {
                                var n = eval(oText1.value + oPer.value + oText.value);
                                oText.value = n;
                                oText1.value = '';
                            }
                            oPer.value = this.innerHTML;
                        }

                    }
                    //点击等号的时候
                    oDeng.onclick = function () {
                        //+-*/%的情况
                        if (oText1.value == '' && oPer.value == '' && oText.value == '') {
                            return;
                        }
                        var n = eval(oText1.value + oPer.value + oText.value);
                        oText.value = n.toFixed(2);
                        oText1.value = '';
                        oPer.value = '';
                        bClear = true;
                    }
                    //点击开根号的时候
                    oSq.onclick = function () {
                        var m = Math.sqrt(oText.value);
                        oText.value = m;
                    }
                    //点击倒数的时候
                    oRec.onclick = function () {
                        var a = 1 / oText.value;

                        if (oText.value == '0') {
                            a = '正无穷'
                        }
                        oText.value = a;
                    }
                    //正负号的时候
                    oZheng.onclick = function () {
                        if (oText.value > 0) {
                            oText.value = -oText.value;
                        }
                        else {
                            oText.value = -oText.value;
                        }
                    }
                    //清屏的时候
                    oClea.onclick = function () {
                        oText.value = '0';
                        oText1.value = '';
                        oPer.value = '';
                    }
                }
            }
            //on时
            oOn.onclick = function () {

也许你还喜欢