1. 程式人生 > 實用技巧 >ES5和ES6的區別(let和var)

ES5和ES6的區別(let和var)

<body>
<button>Click1</button>
<button>Click2</button>
<button>Click3</button>
<button>Click4</button>
<button>Click5</button>
</body>


<!--ES5中的var是沒有塊級作用域的
ES6中的let是由塊級作用域的(if/for
-->


<script type="text/javascript">

//下面的閉包程式碼相當於上面這個,宣告一個方法,然後立即傳引數呼叫
/*
function a(name){
console.log(name)
}
a('小紅')

*/


const btns = document.getElementsByTagName('button')
for (var i = 0; i < btns.length; i++) {
(function (num){
btns[i].addEventListener('click', function () {
console.log('' + num + '個按鈕被點選')
})
})(i)
//for遍歷到i等於5時,被 i < btns.length 判斷擋住了
//如果不閉包處理,for迴圈在點選按鈕之前先遍歷一遍,最後i等於5,所以點選所有的按鈕,都是輸出5個按鈕被點選
}
</script>