目錄 var聲明提升 var可以重復(fù)聲明同一個變量 var全局聲明 作用域 var聲明提升 console.log(name) //土豆var name = '土豆'; 使用 var 聲明的變量會自動提升到函數(shù)作用域的頂部 function foo(){ consol
目錄
- var聲明提升
- var可以重復(fù)聲明同一個變量
- var全局聲明
- 作用域
var聲明提升
console.log(name) //土豆 var name = '土豆';
使用var
聲明的變量會自動提升到函數(shù)作用域的頂部
function foo(){ console.log(name); var name = "土豆"; } foo() //undefined //等價于 function foo(){ var name; console.log(name); name = "土豆"; } foo(); //undefined
console.log(name) //ReferenceError name沒有被定義 let name ="土豆";
而使用let
定義的name
不會被提升,報出ReferenceError
的錯誤;
var可以重復(fù)聲明同一個變量
var name = "番茄"; var name = "西瓜"; var name = "土豆"; console.log(name);//土豆
而使用let重復(fù)聲明同一個變量會報錯。
var name = "土豆"; let name = "土豆"; console.log(name);//'name' has already been declared
let name = "土豆"; var name = "土豆"; console.log(name);//Cannot redeclare block-scoped variable 'name'.
var全局聲明
var name = "土豆"; console.log(window.name);//土豆 let age = "24"; console.log(window.age); //undefined
使用var
定義的變量會被掛載到window上,成為window對象的屬性,而使用let不會。
作用域
if(true){ var name = "土豆"; console.log(name); } console.log(name); //土豆 //土豆 if(true){ let age = 24; console.log(age); } console.log(age); //24 //undefined
使用var
聲明的范圍是函數(shù)作用域,使用let
聲明的范圍是塊作用域。
以上就是JS中var let聲明范圍區(qū)別詳解的詳細(xì)內(nèi)容,更多關(guān)于JS var let聲明范圍區(qū)別的資料請關(guān)注技圈網(wǎng)其它相關(guān)文章!
【本文由:香港云服務(wù)器 http://www.558idc.com/ne.html 復(fù)制請保留原URL】聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。