文章詳情頁
JS中var let聲明范圍區(qū)別詳解
瀏覽:2日期:2022-06-12 17:48:50
目錄var聲明提升var可以重復(fù)聲明同一個(gè)變量var全局聲明作用域var聲明提升console.log(name) //土豆var name = '土豆';
使用var聲明的變量會(huì)自動(dòng)提升到函數(shù)作用域的頂部
function foo(){ console.log(name); var name = '土豆';}foo() //undefined//等價(jià)于function foo(){ var name; console.log(name); name = '土豆';}foo(); //undefinedconsole.log(name) //ReferenceError name沒有被定義let name ='土豆';而使用let定義的name不會(huì)被提升,報(bào)出ReferenceError的錯(cuò)誤;
var可以重復(fù)聲明同一個(gè)變量var name = '番茄';var name = '西瓜';var name = '土豆';console.log(name);//土豆而使用let重復(fù)聲明同一個(gè)變量會(huì)報(bào)錯(cuò)。
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定義的變量會(huì)被掛載到window上,成為window對象的屬性,而使用let不會(huì)。
作用域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)文章!
標(biāo)簽:
JavaScript
排行榜
