JS ES6 let 与 const DAY72

这里先附上之前所介绍的 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


<<:  在威胁建模中的发现了多个 攻击向量(attack vectors),要如何操作(优先顺序)才能解决攻击面?

>>:  关於 StrongSwan IPSec Lan-to-Lan 一问

Day 34 (MySQL)

1.除错 MySQL02影片00:01 2.MAD利用命令列进入MySQL $ % = 终端机 (1...

Angular Stock登入(一)(Day21)

今天要开始实作登入页面,首先我们先新增一个login元件 ng generate component...

Day 05 : 来点不一样的 Two Sum

今天来稍微改变一下 Two Sum 这题题目 原本的题目要回传nums中的index,我们来把他改成...

Day 15 Array

阵列Array 在程序设计中是非常常见的工具,当我们要建立多个相同型态的资料时,就会建立阵列,阵列的...

饭店的奇闻轶事

今天心情郁闷只好来写一些特别的东西,来跟大家聊聊空服的外站人生。 还记得那是一个很冷很冷的冬天,历经...