A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 严海彬 中级黑马   /  2012-2-22 21:47  /  2182 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 严海彬 于 2012-2-27 15:04 编辑

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        function getMax(arr) {
            this.maxnum = arr[0];
            for (var i = 1; i < arr.length; i++) {
                if (arr > this.maxnum) {
                    this.maxnum = arr;
                }
            }
            return this.maxnum;
        }

        function let() {
            if (document.getElementById("txt")) {
            var txtb = document.getElementById("txt");
            var arr1 = new Array();
                arr1 = txtb.value.toString().split(",");
                alert(getMax(arr1));
            }
        }
    </script>
</head>
<body>
    <input type="text" id="txt"  value="1,10,20,a,5,9,100" /><input type="button" onclick="let();" value="点击" />
    <script type="text/javascript">

    </script>
</body>
</html>



以上代码运行之后 取到的值是“a”,悲剧,这个判断的依据是什么呢? 难道是ascii码?

评分

参与人数 1技术分 +3 收起 理由
郑文 + 3

查看全部评分

2 个回复

倒序浏览
当 value="1,10,20,a,5,9,100"时,最大值是a
当 value="1,10,20,a,A,5,9,100"时,还是a
当 value="1,10,20,5,9,100"时,居然是9
当 value="1,10,20,a,A,?,5,9,100"时,居然是?号

现在我把let函数改变一下。
   function let() {
            if (document.getElementById("txt")) {
                var txtb = document.getElementById("txt");
                var arr1 = new Array();
                arr1 = txtb.value.toString().split(",");
             -----   alert(typeof arr1[0]);----
                alert(getMax(arr1));
            }
        }

当在let函数中执行到这里的时候   
alert(typeof arr1[0]);我们发现arr1[0]是string类型

现在我们改变一下 getMax函数
    function getMax(arr) {
            this.maxnum = arr[0];
            for (var i = 1; i < arr.length; i++) {
               ---- alert(typeof arr[i]);---
                if (arr[i] > this.maxnum) {
                    this.maxnum = arr[i];
                }
            }
            return this.maxnum;
        }
当我们函数再次执行到alert(typeof arr[i]);的时候发现,循环中全部是string类型。
所以答案很明确了ASCII码。

评分

参与人数 1技术分 +3 收起 理由
郑文 + 3

查看全部评分

回复 使用道具 举报
是严海彬老师吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马