js變量聲明var使用與不使用的區(qū)別詳解
一、區(qū)分顯示的聲明與隱式聲明(var)
JS中變量聲明分顯式聲明和隱式聲明。
var name = 'muzidigbig';//顯示聲明 name = 'muzidigbig';//隱式聲明(為全局變量的一個屬性)
在函數(shù)中使用var關(guān)鍵字進(jìn)行顯式聲明的變量是做為局部變量,在全局范圍內(nèi)聲明的變量為全局變量;而沒有用var關(guān)鍵字,使用直接賦值方式聲明的是全局變量(全局對象屬性)。
// name = 'muzidigbig';//隱式聲明(為全局變量的一個屬性) console.log(name); function person(){ name = '木子大大'; console.log(name); } person();
當(dāng)我們使用訪問一個沒有聲明的變量時,JS會報錯;而當(dāng)我們給一個沒有聲明的變量賦值時,JS不會報錯,相反它會認(rèn)為我們是要隱式聲明一個全局變量,這一點(diǎn)一定要注意。
name = 'muzidigbig';//隱式聲明(為全局變量的一個屬性) console.log(name); function person(){ name = '木子大大'; console.log(name);//木子大大 } person();
在當(dāng)前域中聲明變量. 如果在方法中聲明,則為局部變量(local variable);如果是在全局域中聲明,則為全局變量。
而事實(shí)上是對屬性賦值操作。首先,它會嘗試在當(dāng)前作用域鏈(如在方法中聲明,則當(dāng)前作用域鏈代表全局作用域和方法局部作用域)中解析 name; 如果在任何當(dāng)前作用域鏈中找到name,則會執(zhí)行對name屬性賦值; 如果沒有找到name,它才會在全局對象(即當(dāng)前作用域鏈的最頂層對象,如window對象)中創(chuàng)造name屬性并賦值。
注意!它并不是聲明了一個全局變量,而是創(chuàng)建了一個全局對象的屬性。
即便如此,可能你還是很難明白“變量聲明”跟“創(chuàng)建對象屬性”在這里的區(qū)別。事實(shí)上,Javascript的變量聲明、創(chuàng)建屬性以及每個Javascript中的每個屬性都有一定的標(biāo)志說明它們的屬性----如只讀(ReadOnly)不可枚舉(DontEnum)不可刪除(DontDelete)等等。
由于變量聲明自帶不可刪除屬性,比較var name = 'muzidigbig' 跟 name = 'muzidigbig',前者是變量聲明,帶不可刪除屬性,因此無法被刪除;后者為全局變量的一個屬性,因此可以從全局變量中刪除。
若有不足請多多指教!希望給您帶來幫助!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
JavaScript數(shù)組各種常見用法實(shí)例分析
這篇文章主要介紹了JavaScript數(shù)組各種常見用法實(shí)例分析,包括數(shù)組的添加、刪除、替換、還原等常見技巧,非常具有實(shí)用價值,需要的朋友可以參考下2015-08-08JavaScript中發(fā)布/訂閱模式的簡單實(shí)例
這篇文章主要介紹了JavaScript中發(fā)布/訂閱模式的簡單實(shí)例,本文給出了一個簡單易懂的實(shí)現(xiàn)代碼,比較容易理解,需要的朋友可以參考下2014-11-11javascript實(shí)現(xiàn)控制文字大中小顯示
網(wǎng)頁上可以自由改變字體大小是個非常有助于用戶體驗(yàn)的小功能,現(xiàn)在許多網(wǎng)站上都有此功能,今天我們來簡單實(shí)現(xiàn)下。2015-04-04js實(shí)現(xiàn)網(wǎng)頁的兩個input標(biāo)簽內(nèi)的數(shù)值加減(示例代碼)
下面小編就為大家?guī)硪黄猨s實(shí)現(xiàn)網(wǎng)頁的兩個input標(biāo)簽內(nèi)的數(shù)值加減(示例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08談?wù)凧avaScript數(shù)組常用方法總結(jié)
本篇文章主要介紹了談?wù)凧avaScript數(shù)組常用方法總結(jié),在JavaScript中,我們需要時常對數(shù)組進(jìn)行操作。一起跟隨小編過來看看吧2017-01-01IE DOM實(shí)現(xiàn)存在的部分問題及解決方法
IE DOM實(shí)現(xiàn)存在的部分問題及解決方法2009-07-07