let const 總結
let const 不會汙染全域性變數 不會宣告到window上
let a=1;
console.log(window.a)//undefind
複製程式碼
let const 不存在變數提升 (他所宣告的變數一定要在宣告後使用,否則報錯)
a=1;
let a=2;//報錯
複製程式碼
let const 不允許在用一個作用域中重複宣告同一個變數
let b=1;
let b=2;//報錯
複製程式碼
塊級作用域 ES5中沒有塊級作用域,只有全域性作用域和函式作用域
{
let a =1
console.log(a)
}
/* 在兩個作用域中宣告的 所以不會報錯 */
{
let a=2;
console.log(a)
}
複製程式碼
let 定義的變數值 是可以被改變的
let a =1;
a=2 ;
console.log(a)
複製程式碼
const宣告的一個常量是 值是不可以改變的(地址不變即可),但是如果儲存的是一個地址 指向物件,可以改變物件裡的內容
const num=1;
num=2;//報錯 不可以修改
console.log(num)
const obj ={a:1}
//obj=[];//報錯
obj.a=2
console.log(obj)
複製程式碼
如果真的想將物件凍結,應該使用 Object.freeze方法
const foo = Object.freeze({});
//常規模式下,下面一行不起作用
//嚴格模式下,改行會報錯
foo.prop = 123;
複製程式碼
未完待續