//1.var定義的變數可以修改,如果不初始化會輸出undefined,不會報錯。 var a; console.log(a); //undefined //2.let是塊級作用域,函數內部使用let定義後,對函數外部無影響。 let c = 3; console.log(c) function c... ...
//1.var定義的變數可以修改,如果不初始化會輸出undefined,不會報錯。 var a; console.log(a); //undefined //2.let是塊級作用域,函數內部使用let定義後,對函數外部無影響。 let c = 3; console.log(c) function change(){ let c = 6; console.log(c) } change();
(1)只要塊級作用域於中存在let命令,它所聲明的變數就綁定在這個區域中,不再受外部的影響。
var a = 10; { console.log(a); //undefined (作用域內部變數不受外部影響,還有就是let不存在變數提升,所以才會報未定義) let a = 3; console.log(a); //3 }
(2)let不允許在同一個作用域內,重覆聲明同一個變數
{ var a = 2; let a = 2; console.log(a) // Error: Identifier 'a' has already been declared }
//3.const定義的變數不可以修改,而且必須初始化。 //const b; //這樣定義不對,必須賦值初始化 const b=1;