iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
自我挑戰組

菜鳥的前端學習筆記系列 第 4

DAY4 - var, let 和 const

  • 分享至 

  • xImage
  •  

前言

傳統用法的 var 和ES6標準新增的 letconst,到底三個有什麼差別?好像都可以用又好像哪裡不對?


var

var 是在ES6前唯一宣告變數的方法,至今為止在許多實作專案或網頁等都還是會看到 var,表面上 varlet 的使用上是沒有太多差異,但在實務上 var 可能會造成不同區域的變數互相汙染的狀況,進而產生許多程式碼管理的問題,所以ES6加入 letconst 主要的原因之一可以說是為了減少因為 var 而產生的問題,並且在讓撰寫及運用變數上可以更為謹慎及安全。

var x = 0

if (true) {
  var x = 1 // 重複宣告
	console.log(x) // 1
}

console.log(x)  // 1   <-- 受到重複宣告影響而導致無論在區塊內或外的x都變成1

let

let 即是自ES6以來主要使用於宣告變數的方法,而使用 let 宣告的變數也代表該資料是可以被重新賦值或是進行改變,舉例來說,我們先宣告fruit為apple,假如今天不想要apple了,可以將fruit重新賦值為orange,這時輸出fruit得到的結果將會是orange。

let fruit = 'apple'
console.log(fruit)  // apple
fruit = 'orange'
console.log(fruit) // orange

但同樣是宣告變數,varlet 差在哪裡?用 var 一樣的例子改用 let 宣告試看看

let x = 0

if (true) {
  let x = 1 
	console.log(x) // 1
}

console.log(x)  // 0

這時會發現使用 let 宣告時,區塊內的x不會影響到區塊外的x,也就不會發生使用 var 宣告時區塊內外的變數會相互影響的問題。


const

const 也是從ES6開始使用,而他與 let 最大的不同在於 const 是用於宣告”常數”,常數是什麼呢?其實就是不能改變的資料,也就是說被 const 宣告出來的常數,是不能像 let 宣告出來的變數一樣進行重新賦值,所以當確定資料不會進行改動時,就很適合使用 const 來宣告啦!

const PI = 3.14
console.log(PI)  // 3.14
PI = 3.15
console.log(PI) // TypeError: Assignment to constant variable.

上一篇
DAY3 - 變數
下一篇
DAY5 - 資料型別
系列文
菜鳥的前端學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言