作用域的问题,可以讲解一下下面代码运行的过程吗?

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

<title>变量、作用域</title>

    

</head>

<body>

<button>1</button>

<button>2</button>

<button>3</button>

    <script type="text/javascript">

//     var btns = document.getElementsByTagName('button');

//          for (var i = 0; i < 3; i++) {

//              btns[i].onclick = function () {

//     alert(i + 1);

//     };

//    }

//在此处修改代码

        var btns = document.getElementsByTagName("button");

        for(var i = 0,len = btns.length;i < len;i++){;

            myChange(i);

        }

        function myChange(i){

            btns[i].onclick = function(){

                alert(i + 1);

            }

        }

    </script>

</body>

</html>


慕小课108
浏览 643回答 1
1回答

第二钢协

// 你的所有变量全是用 var 和 function 定义的,所以存在变量提升 // 1. 变量提升(将所有变量的声明提升到当前作用域最前面): //    var btn; //    function myChange; // 2. 执行: //    btn = document.getElementsByTagName("button"); //    for (var i = 0, len = btns.length; i < len; i++) { //        myChange(i); //    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5