亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

es6作用域的示例分析

發布時間:2022-03-23 13:38:21 來源:億速云 閱讀:184 作者:小新 欄目:web開發

這篇文章主要介紹es6作用域的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

  作用域?

  幾乎所有的編程語言的最基礎模型之一就是在變量中儲存值,并且取出修改這些的值的能力,事實上,在變量中存儲值和取出值的能力,給程序賦予了狀態。如果沒有這樣的概念,一個程序雖然可以執行一些任務,但是它們將會受到極大的限制而且不會非常有趣。但是這些變量該存儲在哪,又給如何讀取?為了完成這個目標,需要制定一些規則,這個規則就是:作用域;

  【相關課程推薦:JavaScript視頻教程】

  作用域主要有哪幾種?

  作用域主要分為全局作用域、函數作用域、動態作用域、塊級作用域;

  對象 類型

  window 全局作用域

  fn 函數作用域

  {} 塊級作用域

  this 動態作用域

  作用域查找規則?

  1、執行環境有全局作用域和函數作用域之分;

  2、每次進入一個新的執行環境,都會創建一個用于搜索變量和函數的作用域鏈;

  3、函數的局部環境不僅可以訪問函數作用域內的變量,還可以訪問包含起父級環境乃至全局環境;

  4、全局環境只能訪問全局聲明的變量和函數,而不能直接訪問局部環境重的任何數據。

  全局作用域

  變量在函數外定義,即為全局變量。

  全局變量有全局作用域:網頁中所有腳本和函數均可使用。

  如果變量在函數內沒有聲明(沒有使用var關鍵字),該變量為全局變量。

  //以下實例中carName在函數內,但是為全局變量。

  //此處可調用carName變量

  functionmyFunction(){

  carName="Volvo";

  //此處可調用carName變量

  }

  在函數內部或代碼塊中沒有定義的變量上是作為window/global的屬性存在,沒有使用var定義的變量可以被delete的,而全局變量不可以。

  函數作用域

  函數內部聲明的變量,稱為函數作用域。函數內部的變量外部無法

  直接訪問,可以通過retun或者閉包的方式去訪問。

  //此處不能調用carName變量

  functionmyFunction(){

  letcarName="Volvo";

  //函數內可調用carName變量

  }

  <!--rerurn-->

  functionmyFunction(){

  letcarName="Volvo";

  rerurncarName;

  //函數內可調用carName變量

  }

  letfn=myFunction()//Volvo;

  <!--閉包-->

  functionmyFunction(){

  letcarName="Volvo";

  functiongetName(){

  console.log(carName)

  }

  returngetName();

  //函數內可調用carName變量

  }

  myFunction()//Volvo

  塊級作用域

  es6出現后,用let命令新增了塊級作用域,外層作用域無法獲取到內層作用域,非常安全明了.即使外層和內層都使用相同變量名,也都互不干擾。

  關于暫時性死區

  *在使用let命令聲明變量之前,該變量都是不可用的。如果去調用這種情況被稱為暫時性死區。

  let特性

  *let不存在變量提升

  *let不允許重復聲明

  *擁有塊級作用域

  *不可以使用window去調用

  const特性

  *定義常量

  *不允許修改常量的值

  *不允許先聲明后賦值

  *同上

  if(1){

  leta=1

  console.log(a)

  }

  動態作用域

  動態作用域不關心函數和作用域是如何聲明以及在何處聲明的,只關心它們從何處調用。和this的機制就很像;

  其實這里就有延伸出js的詞法作用域(靜態作用域),而與詞法作用域相對的是動態作用域,函數的作用域是在函數調用的時候才決定的

  letname='youzi';

  functiongetName(){

  letname="tuzi";

  functiongetAge(){

  console.log(name)

  }

  returngetAge();

  }

  getName()//tuzi

  詞法作用域

  JavaScript采用的是詞法作用域,函數的作用域在函數定義的時候就決定了。

  <!--這段代碼執行就是按照詞法作用域去執行的。在函數定義時已經被決定了-->

  letname='youzi';

  functiongetName(){

  console.log(name)

  }

  functiongetAge(){

  letname='tuzi';

  getName()

  }

  getAge()//youzi

以上是“es6作用域的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

es6
AI

湘潭县| 北川| 高邮市| 新建县| 灵寿县| 博湖县| 商河县| 沙坪坝区| 徐州市| 大理市| 阿巴嘎旗| 化州市| 永德县| 香河县| 铁岭县| 汉川市| 湖南省| 海口市| 湘阴县| 建始县| 东宁县| 彭水| 卓尼县| 拉萨市| 左贡县| 武宁县| 鹿泉市| 云南省| 临泉县| 曲沃县| 河源市| 张北县| 柘荣县| 镇康县| 佛教| 新干县| 思南县| 右玉县| 宜君县| 沿河| 连山|