const b = 2 //正確 //const b //錯誤,沒有初始化 console.log('函數外const定義b:' + b);//有輸出值 // b = 5; // console.log('函數外修改const定義b:' + b);//沒法輸出
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定義以後,對函數外部無影響spa
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