JS中var let聲明范圍區(qū)別詳解
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 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定義的變量會(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)注腳本之家其它相關(guān)文章!
相關(guān)文章
javascript full screen 全屏顯示頁面元素的方法
要想讓頁面的某個(gè)元素全屏顯示,就像在網(wǎng)頁上看視頻的時(shí)候,可以全屏觀看一樣,該怎么實(shí)現(xiàn)呢2013-09-09
WEB開發(fā)之注冊頁面驗(yàn)證碼倒計(jì)時(shí)代碼的實(shí)現(xiàn)
近期在搞一個(gè)H5+backbone 項(xiàng)目,驗(yàn)證輸入手機(jī)號(hào) 驗(yàn)證碼倒計(jì)時(shí)功能,代碼中包含了前端樣式布局代碼和后端邏輯實(shí)現(xiàn),思路明確,具有參考借鑒價(jià)值,需要的朋友參考下吧2016-12-12
JS localStorage存儲(chǔ)對象,sessionStorage存儲(chǔ)數(shù)組對象操作示例
這篇文章主要介紹了JS localStorage存儲(chǔ)對象,sessionStorage存儲(chǔ)數(shù)組對象操作,結(jié)合實(shí)例形式詳細(xì)分析了JS使用localStorage存儲(chǔ)對象以及sessionStorage存儲(chǔ)數(shù)組對象相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2020-02-02
JavaScript多種圖形實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了JavaScript多種圖形實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

