JavaScript做用域

1、做用域:變量能夠起做用的範圍。有全局做用域和局部做用域兩種。html

2、全局變量和局部變量瀏覽器

    全局變量:在任何地方都能訪問到的變量,對應全局做用域;網頁內全部腳本和函數都可以訪問全局變量。函數

    局部變量:只在固定代碼段中可訪問到的變量,最多見的例如函數內部,對應局部做用域。es5

注意1.在Javascript中,對象和函數也是變量;htm

   2.未使用var聲明的變量是全局變量,不推薦使用;對象

           3.變量退出做用域以後會銷燬,全局變量關閉網頁或瀏覽器纔會銷燬。ip

   4.全局做用域造成了完整的Javascript環境。在html中,全局做用域是window,全部全局變量均屬於window對象。作用域

           5.除非有意爲之,不然請勿建立全局變量。全局變量(或函數)可以覆蓋window變量(或函數)。任何函數,包括window對象,可以覆蓋你的全局變量和函數。變量

3、塊級做用域腳本

    任何一對花括號中的語句集都屬於一個塊,在這之中定義的全部變量在代碼塊外都是不可見的,這就是塊級做用域。在es5以前沒有塊級做用域的概念,只有函數做用域。

4、做用域鏈

     只有函數能夠製造做用域結構,那麼只要是有代碼,至少有一個做用域,那就是全局做用域。凡是代碼中有函數,那麼這個函數就構成另外一個做用域,叫1級做用域。這時候全局做用域又叫0級做用域,若是函數中還有函數,那麼就以此類推,2級,3級....沒有限制。

     將這樣的全部的做用域列出來,能夠有一個結構:函數內部指向函數外的鏈式結構,就稱做做用域鏈。

相關文章
相關標籤/搜索