實驗let的塊級作用域,在sublime的Tools——Babel——Babel Transform檢測未出現錯誤,在html中也未出現錯誤,唯在控制台中一直報錯。
//js名為es6.js ---* es6.js *---改前: let a = []; for (let i = 0; i < 10; i++) { a[i] = function() { console.log(i); }; } a[6]();
//html中
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="es6.js">
</script>
</head>
原因:ES6代碼開頭時要聲明為"use strict"。
//改后 "use strict"; let a = []; for (let i = 0; i < 10; i++) { a[i] = function() { console.log(i); }; } a[6]();
等價於ES5中的閉包