變量提升相關 var let const(2)

var let const

JS中作用域有:全局作用域、函數作用域。沒有塊作用域的概念

ECMAScript 6(簡稱ES6)中新增了塊級作用域。塊作用域由 { } 包括,if語句和for語句裏面的{ }也屬於塊作用域。 

1.var定義變量,沒有塊的概念,可以跨塊訪問,不能跨函數訪問,不初始化出現undefined,不會報錯。

2.let定義變量,只能在塊作用域裏訪問,也不能跨函數訪問,對函數外部無影響。

3.const定義常量,只能在塊作用域裏訪問,也不能跨函數訪問,使用時必須初始化(即必須賦值),而且不能修改(const用來聲明常量)

 

舉個例子

var arr=[];

for(var i=0;i<7;i++)

{

arr[i]=function(){

console.log(i);

}

}

for(var j=0;j<arr.length;j++)

{

arr[j]();

}//結果-》6666666

/****************************/

var arr=[];

for(let  i=0;i<7;i++)

{

arr[i]=function(){

console.log(i);

}

}

for(var j=0;j<arr.length;j++)

{

arr[j]();

}//結果-》0123456

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章