這裡先附上之前所介紹的 JS ES6
let 與 const 的基本介紹
https://ithelp.ithome.com.tw/articles/10248410
接著我們在來看幾個經典案例
for(var i = 0 ;i < 10 ; i++){
setTimeout(function(){
console.log('這執行第' + i + '行');
},10)
}
console.log(i);
setTimeout console 裡的 i
就是全域的 i
因為 setTimeout 為非同步行為
會先放到事件佇列(Event Queue)
等程式碼執行完
才執行事件佇列
那要怎麼改善呢??
我們可以利用 let
for(let i = 0 ;i < 10 ; i++){
setTimeout(function(){
console.log('這執行第' + i + '行');
},10)
}
暫時性死區(TDZ)
{
// 創造階段
let ming; // 暫時性死區 (TDZ)
// 在暫時性死區我們無法試圖取得值
// 若試圖取得值 會跳出錯誤
// 執行階段
console.log(ming);
let ming = '小黑';
}
console.log(typeof a);
let a = '';
那今天的介紹就到這裡
若有任何問題 或 內容有誤
都可以跟我說唷