JS 變數宣告


Posted by fang on 2020-06-20

const

const 宣告後的值不能直接被改變的。

//這樣直接改值會顯示錯誤
const a = 10
a = 20
console.log(a)

將會印出10

如果利用 const 宣告陣列或物件,則可以被改變,以下例子我們可以想像 b 裡面存的是某個值的記憶體位址,所以更改物件或陣列的值其實只是更改記憶體位址,指向其他的值。這裡牽涉到 JS 最底層的運作方法。

//陣列及物件改變是可以的,其實不是改變值,是改變指向哪一個記憶體位址
const b = {
    number : 10
}
b.number = 20
console.log(b)

將會印出{number : 20}


var 和 let 的作用域差別

ver 的作用域比 let 還要廣,var 的作用域是一個 function,而 let 則是一個 block。

//使用 var 在整個 function 都可以使用 c 變數
function test() {
    if (10 > 5){
        var c = 10
    }
    console.log(c)
}
test()

將會印出10

//使用 let 在整只有在 if 中可以使用 c 變數
function test() {
    if (10 > 5){
        let c = 10
    }
    console.log(c)
}
test()

將會顯示找不到 c 變數


那 const 的作用域呢

const 的作用域跟 let 一樣只在 block 中使用,差別只在於 const 不可改值,let 和 var 是可以隨時改值的。


最後進行一下表格整理

const let var
block block function
不可改值 可改值 可改值

#javascript #變數宣告







Related Posts

[BE201] 後端中階:ORM 與 Sequelize 改留言板系統

[BE201] 後端中階:ORM 與 Sequelize 改留言板系統

Redux 應用官方教學筆記

Redux 應用官方教學筆記

[ JavaScript  12 ]  ES6 新增特性

[ JavaScript 12 ] ES6 新增特性


Comments