小羊也疯狂 2017-03-03 12:02 采纳率: 100%
浏览 1205
已采纳

js代码,比较大小的函数,不知道哪里错了,求帮助

 <html>
<head>
    <script type="text/javascript">
        function swap(a, b) {
            var c;
            c = a;
             a = b;
             b = c;
        }
        var a = [1,2];
        alert(a[1]);
        swap(a[0],a[1]);
        alert(a[0]);
        alert(a[1])
    </script>
</head>
<body>
</body>
</html>

图片说明
提示说的是 好像ab没定义?

然后下面这个报错事什么意思?
图片说明

  • 写回答

2条回答 默认 最新

  • Go 旅城通票 2017-03-03 12:46
    关注

    a[0],a[1]是值引用(非对象,普通类型如数字,字符串,布尔都是值引用),不是地址引用,无法交换数组中的值,直接传递数组进行交换

            function swap(arr) {
                var c;
                c = arr[0];
                 arr[0] =arr[1];
                 arr[1] = c;
            }
            var a = [1,2];
            alert(a[1]);
            swap(a);
            alert(a[0]);
            alert(a[1])
    

    编辑器的问题,你那样浏览器也不会报错,js添加事件需要传递函数句柄,不能字符串,这个和dom中onclick属性不一样,dom中的onclick会生成一个匿名函数,函数体为属性值

     document.getElementById('sort-btn').onclick=btnHandle//()//注意不能带(),直接函数名称(句柄),要不是执行函数将返回值作为onclick处理函数
    或者
    document.getElementById('sort-btn').onclick=function(){btnHandle()}//==>等价于dom属性 <input onclick="btnHandle()"
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试