[Day 20] JS - 变数宣告

前言

延续昨天作用域,今天就来更细谈认识 ES6 变数宣告的方式。

  • var:作用域是依 function 区分
  • letconst:作用域是{} block 区块

学习资源分享

  1. JavaScript 那个 let, const, var 到底差在哪?,今年六角学院释出不少教学影片,即便是过去学过的基础,但还是能从中获得不少知识点。这部影片从为什麽要宣告变数开始、介绍变数宣告的差异,也有带到作用域、Hoisting的观念。

认识宣告 varlet 差异

以for回圈为例

  • 使用var,会渲染到外面变数
    • 外面宣告 i 为0,回圈跑完之後,污染到外面的 i,使其变 10
    • 因为var的宣告并不是放在 function 当中,所以当在跑最後一圈时,i 会为 10,跳出回圈,并渲染到回圈外
 var i = 0
    for (var i = 0; i < 10; i++) {
      console.log("跑到第" + i + "次");
    }
    console.log(i) ; // JS 21行

  • 看看使用 let
    • for回圈有一个block区块,所以回圈执行完,就结束
 let i = 0
    for (let i = 0; i < 10; i++) {
      console.log("跑到第" + i + "次");
    }
    console.log(i);

ifelae回圈为例

var为例,原本x设为1,在判断式跑完後,变成5

 var x = 1;
    if (x === 1) {
      var x = 5;
    } else {
      var x = 19;
    }
    console.log(x)

let为例,可以发现在外面宣告let y = 1;并没有受影响。

let y = 1;
    if (y === 1) {
      let y = 5;
    } else {
      let y = 19;
    }
    console.log(y)

const 常数

  • 定义之後,不能改变的数
  • 不可重新派值外,也不可重新宣告
  • 作用域范围 :『block scope』
  • 以下语法,先设定一个dog = 'Tom' 後面要再修改变数的内容就会发生错误
 <script>
    const dog = 'Tom';
    dog = 'Mary';

  </script>

例外:当使用const定义物件...

  • 常数定义物件时,是定义整个物件的位置!
  • 而在此情形是可以修改物件内的值
  • 此范例:设定 farm的name 为name: 'Wang',在外面改变其值的内容,并印出来,可以发现修改为name : 'Jason'
 <script>
    const farm = {
      name: 'Wang',
      pet: 'dog'
    }
    farm['name'] = 'Jason';
    console.log(farm);

  </script>

此外在 array 里面,也可以push资料进去喔!

  <script>
    const a = { name: 'mike' };
    const b = ['eva'];
    a["age"] = 18;
    b.push("tom");
    console.log(a);
    console.log(b)

  </script>

参考资料:
ES6 开始的新生活 let, const
Javascript 学习笔记: 变数(Variable)宣告
JavaScript 使用const关键字宣告常数


<<:  Day.12 主从搭建 - 部署流程(Master Slave Replication )

>>:  Day6|【Git】提交档案给 Git 控管 - git status 、 git add 指令

Day30 居然到了这一天

完全没想到一转眼第30天就这样到来了,从开赛前的信心满满,总觉得可以将脑袋里的东西通通有条理地讲出来...

【第13天】训练模型-优化器(Optimizer)

摘要 优化器演算法比较 1.1 浅谈优化器演算法 1.2 设计实验 1.3 函数设定 1.4 纪录学...

[DAY-27] 适合你的 才是真正的好职涯

经营你的职业生涯 人对於甚麽叫 理想职涯 都有一套自己的想法 在经营职涯时候 追求目标要有弹性 适...

Day 23 - 天眼CNN 的耳朵和嘴巴 - Transformer

RNN问题及解法 RNN 有字数限制, 最多到200字, 超过效果不好。The fall of RN...

Day 05 Line Massaging API- 打造自己的 Chatbot

Line Massaging API- 打造自己的 Chatbot 接下来,如果要在 Azure W...