| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 471 人关注过本帖
标题:今天看一本javascript的书,遇到了这个strCMD
只看楼主 加入收藏
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
结帖率:82.35%
收藏
已结贴  问题点数:10 回复次数:1 
今天看一本javascript的书,遇到了这个strCMD
function calc(strCMD)实在是没看明白这个strCMD是啥意思啊,另外附上代码,大婶帮忙看看,我是按照书上的打的,但是还是运行不出来,这是一个科学计算器的代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.
<html>
 <head>
  <title> ex2 </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <style>
    *{font-size:12px;}
    body{background-color:#C7C7C7;border-style:none;}
    .button{width:50px;height:30px;}
    #txt_display{width:100%;cursor:default;text-align:right;}
  </style>
  <script>
    var calc_buttons=[0,1,2,3,4,5,6,7,8,9,".","=","+","-","*","/","AC","sin","sin","cos","tan","asin","acos","atan","ln"];
    var previous_value=0,op="",start_new_input=true;
    function calc(strCMD)
    {
        var objTxt=$("txt_display");
        switch(strCMD)
        {
            case "sin":objTxt.value=Math.sin(objTxt.value);break;
            case "cos":objTxt.value=Math.cos(objTxt.value);break;
            case "tan":objTxt.value=Math.tan(objTxt.value);break;
            case "asin":objTxt.value=Math.asin(objTxt.value);break;
            case "acos":objTxt.value=Math.acos(objTxt.value);break;
            case "atan":objTxt.value=Math.atan(objTxt.value);break;
            case "ln":objTxt.value=Math.log(objTxt.value);break;
            case "+":
            case "-":
            case "*":
            case "/":
                start_new_input=true;
                if(op!=""&&objTxt.value!="")
                {
                    objTxt.value=eval(previous_value+op+objTxt.value);
                    op=strCMD;
                }
                else
                {op=strCMD;}
                break;
            case "=":
                start_new_input=true;
                if(op!=""&&objTxt!="")
                    objTxt.value=eval(previous_value+op+objTxt.value);
                    op="";
                    previous_value=0;
                    break;
            case "AC":
                start_new_input=true;
                objTxt.value="0";
                op="";
                previous_value=0;
                break;
            case ".":
                if(objTxt.value.indexOf(".")!=-1)break;
            default:
                if(start_new_input)
                {
                    start_new_input=false;
                    previous_value=objTxt.value;
                    objTxt.value="0";
                }
                if(objTxt.value!="0")
                {objTxt.value+=strCMD;}
                else if(strCMD!="0")
                {objTxt.value=strCMD;}
        }
    }
    function write_table()
    {
        document.write("<table>");
        document.write("<tr>");
        for(var i=0;i<calc_buttons.length;i++)
        {
            document.write("<td><input value=\"" +calc_button[i]+"\"type=\"button\" class=\"button\" onclick=\"calc(this.value);\"></td>");
            if((i+1)%5==0)
                document.write("</tr><tr>");
        }
        document.write("</tr>");
        document.write("</table>");
    }
    function $(str)
        {return(document.getElementById(str));}
  </script>
</head>

 <body style="overflow:auto;">
    <input id="txt_display" value="0" readonly>
    <script>
        write_table();
    </script>
 </body>
</html>
搜索更多相关主题的帖子: javascript 计算器 function content PUBLIC 
2013-10-23 20:38
hugeannex
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:483
专家分:911
注 册:2005-3-20
收藏
得分:10 
代码就不帮你测试了,要自己找出错误才会进步,
strCMD就表示calc_buttons数组中的各值。
题外话:这是以前常见的一变量写法,前面的str表示这是一个字符型的变量,如果是整型的,前面就用int开头。(其实就是一个变量,个人爱好不同,呵呵)

世事如潮我如水,只叹江湖几人回。
2013-10-24 11:10
快速回复:今天看一本javascript的书,遇到了这个strCMD
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025070 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved