国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

變量和函數提升

tianren124 / 2368人閱讀

摘要:代碼的執行分為兩個步驟預解析提升代碼在預解析階段,會對以聲明的變量名,和開頭的語句塊,進行提升操作執行變量的提升提升之后的代碼模擬函數同名,如何提升預處理的時候,會將兩個函數全部提升,但是后面的函數會覆蓋掉前面函數預解析提升后的代碼變量和函

js代碼的執行分為兩個步驟

1.預解析

 提升(hoisting)
 JavaScript代碼在預解析階段,會對以var聲明的變量名,和function開頭的語句塊,進行提升操作

2.執行

  func();
   function func(){
       alert("Funciton has been called");
   }

   //變量的提升
  alert(a);
   var a = 1;

   //提升之后的代碼模擬
   var a;
   alert(a);
   a = 1;

 

函數同名,如何提升

預處理的時候,會將兩個函數全部提升,但是后面的函數會覆蓋掉前面函數

  func1();  //last
   function func1(){
       console.log("This is first func1");
  }

  func1();  //last
   function func1(){
       console.log("This is last func1");
  }
   //預解析提升后的代碼
   function func1(){
       console.log("This is first func1");
   }

   function func1(){
       console.log("This is last func1");
  }
   func1();  //last
   func1();  //last

變量和函數同名

在提升的時候,如果有變量和函數同名,會忽略掉變量,只提升函數

   alert(foo); //undefined  函數體
   function foo(){}
   var foo = 2;
   alert(foo); //2
   //預解析 提升后的代碼
   function foo(){};
   alert(foo);
   foo=2;
   alert(foo);

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/52488.html

相關文章

  • JS中的變量提升函數提升

    摘要:什么是函數作用域下的變量提升和函數提升函數作用域中也存在變量提升和函數提升,這個和全局作用域下的情況是一模一樣的,就是把作用域想成是全局的就可以了。 在js中有一部分比較難以理解,卻也是在筆試過程中很容易考的,那就是變量提升和函數提升的問題,這篇文章我會就變量提升和函數提升的問題拓展一下有關js函數的知識點,包括作用域的問題,后面還會有一些小練習來判斷自己是否真的搞懂了。 作用域 在j...

    zhunjiee 評論0 收藏0
  • 變量函數聲明提升

    摘要:聲明提升變量和函數聲明提升發生在預編譯階段。上面代碼,函數內相當于對全局變量進行賦值函數聲明提升創建函數有兩種方式,函數聲明和函數表達式,只有函數聲明存在提升。同時聲明變量和函數顯示的是,初步證明的優先級高于。 聲明提升 變量和函數聲明提升發生在JavaScript預編譯階段。 所謂的聲明提升,就是說變量或者函數在聲明的時候會被提前到當前作用域的頂部,已經處于可訪問狀態。 變量聲明提升...

    FleyX 評論0 收藏0
  • js變量提升函數提升的機制

    摘要:所謂變量提升,提升就是為了事先聲明變量。變量提升之后,但其賦值還是留在原本的位置等運行到了之后動態賦值,而函數提升之后直接相當于在代碼里抽空了。搞明白這個例子也就搞懂了作用域中變量和函數是怎么提升的。 問題 showImg(https://segmentfault.com/img/bVJ614?w=222&h=165); 在這個例子中它應該輸出什么?輸出的結果是6。 showImg(h...

    fasss 評論0 收藏0
  • js 變量提升閉包理解

    摘要:變量的作用域無非就是兩種全局變量和局部變量。其中內部函數中可以訪問外部函數的變量,是因為內部函數的作用域鏈中包含了外部函數的作用域也可以理解為內部函數的作用范圍輻射到了外部函數的作用范圍另一方面,在函數外部自然無法讀取函數內的局部變量。 以前學習的時候,了解過變量提升和閉包,但是沒有深入了解,網上查了資料,這里記錄下,只供參考。部分內容引用: https://www.cnblogs.c...

    luoyibu 評論0 收藏0
  • javascript聲明提升

    摘要:但是碰到聲明提升,這種想法就會被打破。聲明一個函數進行相應的操作,會得到函數聲明提升的結果。由此可以發現變量和函數的聲明都會被提升在其他代碼的前面執行。一個普通塊內部的函數聲明通常會被提升到所在的作用域的頂部。的創建初始化和賦值均會被提升。 Javascript聲明提升 在分析聲明提升之前,我認為有必要知道的兩點: 一、引擎查詢變量的兩種方式 引擎查詢變量的方式可以分為LHS和RHS兩...

    evin2016 評論0 收藏0
  • 【6】JavaScript 函數高級——執行上下文與執行上下文棧、變量提升(圖解+典型實例分析)

    摘要:函數和變量相比,會被優先提升。這意味著函數會被提升到更靠前的位置。僅提升聲明,而不提升初始化。 JavaScript 函數高級——執行上下文與執行上下文棧(圖解+典型實例分析) 變量提升與函數提升 變量聲明提升 通過 var 定義(聲明)的變量,在定義語句之前就可以訪問到 值:undefined /* 面試題 : 輸出 undefined */ var a = 3 ...

    niuxiaowei111 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<