您的位置:首頁技術文章
文章詳情頁

JS中var let聲明范圍區別詳解

瀏覽:5日期: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
国产综合久久一区二区三区