let與var聲明區別
阿新 • • 發佈:2018-04-10
i++ length div 作用域 () 函數作用域 str FN brush
1、在以往的js中只存在函數作用域而不存在塊級作用域。只在是var聲明的在整個fn中都有效。---導致結果如下
fn(){ for(var i =0;i<xx.length;i++){ //當聲明 i 後該參數在整個fn中都有效汙染了全局變量 再該方法後就不可再說用 i } for(let i =0;j<xx.length;j++){ //但如果使用 let 聲明則表示該變量處於塊級作用域 {} 想想 java 不汙染全局變量 也更加規範 } }
2、使用let 將會存在暫時性死區 解釋:使用let 聲明的變量,在其聲明前不可使用。規範js
fn(){ console.log(a); //直接報錯 這叫暫時性死區 let a =5; } fn(){ console.log(a); //undefind 不會報錯 只是表示該參數未聲明而已 var a =5; }在ESC6中 新增 coenst 聲明--------向高級編輯語言看齊。final static const 聲明的變量必須聲明同時初始化,且不可改變值,但可以改變屬性。
//例如: for(){ const t = [ ] t=[1,2];//報錯 t[0]=1;//可以改變其屬性 }
let與var聲明區別