目錄 var聲明提升 var可以重復聲明同一個變量 var全局聲明 作用域 var聲明提升 console.log(name) //土豆var name = '土豆'; 使用 var 聲明的變量會自動提升到函數作用域的頂部 function foo(){ consol
目錄
- var聲明提升
- var可以重復聲明同一個變量
- var全局聲明
- 作用域
var聲明提升
console.log(name) //土豆 var name = '土豆';
使用var
聲明的變量會自動提升到函數作用域的頂部
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可以重復聲明同一個變量
var name = "番茄"; var name = "西瓜"; var name = "土豆"; console.log(name);//土豆
而使用let重復聲明同一個變量會報錯。
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
聲明的范圍是函數作用域,使用let
聲明的范圍是塊作用域。
以上就是JS中var let聲明范圍區別詳解的詳細內容,更多關于JS var let聲明范圍區別的資料請關注技圈網其它相關文章!
【本文由:香港云服務器 http://www.558idc.com/ne.html 復制請保留原URL】聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。