文章詳情頁
JS中var let聲明范圍區別詳解
瀏覽:3日期:2022-06-12 17:48:50
目錄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(); //undefinedconsole.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 declaredlet 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聲明范圍區別的資料請關注好吧啦網其它相關文章!
標簽:
JavaScript
排行榜