const
const定義的變量不可以修改,而且必須初始化
const b = 2 //正確 //const b //錯誤,沒有初始化 console.log('函數外const定義b:' + b);//有輸出值 // b = 5; // console.log('函數外修改const定義b:' + b);//無法輸出
var
var定義的變量可以修改,可以不初始化,沒有初始化輸出undefined
var a = 1; // var a;//不會報錯 console.log('函數外var定義a:' + a);//可以輸出a=1 function change(){ a = 4; console.log('函數內var定義a:' + a);//可以輸出a=4 } change(); console.log('函數調用后var定義a為函數內部修改值:' + a);//可以輸出a=4
let
let是塊級作用域,函數內部使用let定義之后,對函數外部無影響
let c = 3; console.log('函數外let定義c:' + c);//輸出c=3 function change(){ let c = 6; console.log('函數內let定義c:' + c);//輸出c=6 } change(); console.log('函數調用后let定義c不受函數內部定義影響:' + c);//輸出c=3