let和const 使用方法:
(1).有沒有感覺到在 javascript 使用var會發生變量提升,即腳本開始運行時,
變量已經存在了,但是沒有值,所以會輸出undefined。
而let不會發生變量提升,這表示在聲明它之前,變量是不存在的,這時如果用到它,
就會拋出一個錯誤。
(2). var 是函數級作用域,let是塊級作用域
例子:
{
let n = 10;
var m = 1;
}
結果:n // 會報錯:ReferenceError:a is not defined.
結果:m // 1
(2).let不允許在相同作用域內,重復聲明同一個變量:
例子:
function(){
let n = 10;
var n = 1;
}
//報錯
function(){
let n = 10;
let n = 1;
}
//報錯
(3).const聲明一個只讀的常量,且聲明后,常量的值是不能改變的
const PI = 3.1415;
PI = 3;
//報出異常:TypeError: Assignment to constant variable
(4).const命令聲明的常量也是不提升,只能在聲明的位置后面使用。
例子:
{
const a = 10;
}
console.log(a);
//報錯
(5).const與let 一樣不可重復聲明
(6).復合類型的變量,變量名不指向數據,它是指向數據所在的地址,
const只保證變量名指向的地址是不變的,並不能保證它地址的數據是不變的,
所以將一個對象聲明為常量必須非常小心.
const n = {};
n.prop = aaa;
console.log(n.prop); // aaa
n = {}; // 報錯
