91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js變量聲明var使用與不使用的區別詳解

發布時間:2020-10-13 09:06:35 來源:腳本之家 閱讀:173 作者:muzidigbig 欄目:web開發

一、區分顯示的聲明與隱式聲明(var)

JS中變量聲明分顯式聲明和隱式聲明。

var name = 'muzidigbig';//顯示聲明 
name = 'muzidigbig';//隱式聲明(為全局變量的一個屬性)

在函數中使用var關鍵字進行顯式聲明的變量是做為局部變量,在全局范圍內聲明的變量為全局變量;而沒有用var關鍵字,使用直接賦值方式聲明的是全局變量(全局對象屬性)。

// name = 'muzidigbig';//隱式聲明(為全局變量的一個屬性)
  console.log(name);
  function person(){
    name = '木子大大';
    console.log(name);
  }
  person();

當我們使用訪問一個沒有聲明的變量時,JS會報錯;而當我們給一個沒有聲明的變量賦值時,JS不會報錯,相反它會認為我們是要隱式聲明一個全局變量,這一點一定要注意。

name = 'muzidigbig';//隱式聲明(為全局變量的一個屬性)
console.log(name);
function person(){
  name = '木子大大';
  console.log(name);//木子大大
}
person();

在當前域中聲明變量. 如果在方法中聲明,則為局部變量(local variable);如果是在全局域中聲明,則為全局變量。

而事實上是對屬性賦值操作。首先,它會嘗試在當前作用域鏈(如在方法中聲明,則當前作用域鏈代表全局作用域和方法局部作用域)中解析 name; 如果在任何當前作用域鏈中找到name,則會執行對name屬性賦值; 如果沒有找到name,它才會在全局對象(即當前作用域鏈的最頂層對象,如window對象)中創造name屬性并賦值。

注意!它并不是聲明了一個全局變量,而是創建了一個全局對象的屬性。

即便如此,可能你還是很難明白“變量聲明”跟“創建對象屬性”在這里的區別。事實上,Javascript的變量聲明、創建屬性以及每個Javascript中的每個屬性都有一定的標志說明它們的屬性----如只讀(ReadOnly)不可枚舉(DontEnum)不可刪除(DontDelete)等等。

由于變量聲明自帶不可刪除屬性,比較var name = 'muzidigbig' 跟 name = 'muzidigbig',前者是變量聲明,帶不可刪除屬性,因此無法被刪除;后者為全局變量的一個屬性,因此可以從全局變量中刪除。

若有不足請多多指教!希望給您帶來幫助!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梁河县| 高唐县| 怀仁县| 米泉市| 东台市| 洪泽县| 横山县| 龙海市| 阿克苏市| 台东市| 钟山县| 临西县| 建始县| 兴海县| 阳谷县| 和平县| 柯坪县| 包头市| 寿宁县| 鹤壁市| 乐山市| 九龙坡区| 花莲市| 麻栗坡县| 固原市| 三穗县| 蒙山县| 大渡口区| 武义县| 金寨县| 苏尼特右旗| 临西县| 安康市| 邛崃市| 临安市| 庆城县| 吉首市| 凉城县| 阿克陶县| 东山县| 永寿县|