iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

var、let & const 差異

2. 作用域 Scope

作用域的意思就是 "變數可以使用的範圍"

  1. function scope
  2. block scope
  3. global scope
  • var => function scope

只存活在宣告的 function

// function scope
function a1() {
  var a = 1
  console.log(a) 
}

a1() // 1
console.log(a) // error: not defined
// block scope
if (true) {
  var b = 2
}
console.log(b)  // 2
  • let & const => block scope

只存活在宣告的 區塊

// function scope
function a1() {
  let a = 1
  console.log(a) 
}

a1() // 1
console.log(a) // error: not defined
// block scope
if (true) {
  let b = 2
}
console.log(b) // error: not defined
  • global scope

除了在函式或區塊作用域中定義的變數,其餘的變數皆為全域變數,可以在任何作用域中被取用

在瀏覽器中,window 代表全域物件,若在全域中用 var 宣告一個變數會產生在 window 物件下,可用 window. 的方式去呼叫

用 var 宣告的變數 產生在全域物件下

var a = 1
window.a // 1

用 let / const 宣告的變數 不會 產生在全域物件下

let a = 1
window.a // undefiend

上一篇
Day 2 - JavaScript:var、let & const
下一篇
Day 4 - JavaScript:var、let & const
系列文
從零開始 - 30 天學習筆記12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言