Les dejo una calculadora en java script
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Calculadora V1.0</title>
        <script>
            numero1 = null;
            numero2 = null;
            operacion = '';
            function llenar(valor) {
                if(isNaN(valor)){
                    switch (valor) {
                        case '*':
                        case '/': 
                        case '+':  
                        case '-':
                        case 'X²':
                        case 'n!': 
                            numero1 = parseFloat(document.getElementById("text1").value);
                            operacion = valor;
                            document.getElementById("text1").value = "";
                            break;
                        case '=':
                            switch (operacion) {
                                case '+':      
                                    document.getElementById("text1").value = sumar(numero1, parseInt(document.getElementById("text1").value));
                                    break;
                                case '-':      
                                    document.getElementById("text1").value = restar(numero1, parseInt(document.getElementById("text1").value));
                                    break;
                                case '/':      
                                    document.getElementById("text1").value = dividir(numero1, parseInt(document.getElementById("text1").value));
                                    break;
                                case '*':      
                                    document.getElementById("text1").value = multiplicar(numero1, parseInt(document.getElementById("text1").value));
                                    break;
                                case 'X²':      
                                    document.getElementById("text1").value = potencia(numero1, parseInt(document.getElementById("text1").value));
                                    break;
                                case 'n!':      
                                    document.getElementById("text1").value = factorial(numero1);
                                    break;
                                default:
                                    break;
                            }
                            break;
                        case '.':
                            if(valor = 0){
                                document.getElementById("text1").value = '0.'; 
                            }else{
                                document.getElementById("text1").value = valor + '.';
                            }
                            break;
                        case 'C': 
                            document.getElementById("text1").value = "0";
                            break;
                        default:
                            alert('Comando no reconocido');
                            break;
                    }
                } else {
                    switch (valor) {
                        case '0':
                            document.getElementById("text1").value += valor
                            break;
                        default:
                            if(document.getElementById("text1").value == 0){
                                document.getElementById("text1").value = valor;
                            }else{
                                document.getElementById("text1").value += valor;
                            }
                            break;
                    }
                    return false;
                }
            }
            function sumar(numero1, numero2){
                return numero1 + numero2;
            }
            function restar(numero1, numero2){
                return numero1 - numero2;
            }
            function dividir(numero1, numero2){
                return numero1 / numero2;
            }
            function multiplicar(numero1, numero2){
                return numero1 * numero2;
            }
            function potencia(numero1, numero2){
                return Math.pow(numero1, numero2);
            }
            function factorial(numero1){
                var factorial;
                for (var i=1; i <= numero1; i++){
                    factorial *= i;
                } 
                return factorial;
            }
        </script>
    </head>

    <body>
        <form name="form1" method="POST">
            <table border="2">
                <tbody>
                    <tr>
                        <td colspan="5"><input size="30" maxlength="80" id="text1" name="text1" value="0" type="text" style="text-align: right" readonly/></td>
                    </tr>
                    <tr>
                        <td align="center"><input value="7" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="8" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="9" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="/" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="C" onclick="llenar(this.value)" type="button"/></td>
                    </tr>
                    <tr>
                        <td align="center"><input value="4" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="5" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="6" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="*" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="X²" onclick="llenar(this.value)" type="button"/></td>
                    </tr>
                    <tr>
                        <td align="center"><input value="1" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="2" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="3" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="-" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="n!" onclick="llenar(this.value)" type="button"/></td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center"><input value="0" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="." onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="+" onclick="llenar(this.value)" type="button"/></td>
                        <td align="center"><input value="=" onclick="llenar(this.value)" type="button"/></td>
                    </tr>
                </tbody>
            </table>
        </form>
    </body>
</html>