iT邦幫忙

0

JS ES6 let 與 const DAY72

  • 分享至 

  • xImage
  •  

這裡先附上之前所介紹的 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)

  1. let 一樣有創造階段
  2. 但從創造階段到實際宣告的階段會出現 TDZ ,此區域無法呼叫變數
  3. 有創造執行的概念,但不會預先出現 undefined 而是出現錯誤提示
{
    // 創造階段
    let ming; // 暫時性死區 (TDZ)
    // 在暫時性死區我們無法試圖取得值 
    // 若試圖取得值 會跳出錯誤
    
    // 執行階段
    console.log(ming);
    let ming = '小黑';
}

console.log(typeof a);
let a = '';

那今天的介紹就到這裡
若有任何問題 或 內容有誤
都可以跟我說唷/images/emoticon/emoticon41.gif


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言