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

溫馨提示×

溫馨提示×

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

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

js變量提升和函數提升

發布時間:2020-06-02 20:09:55 來源:網絡 閱讀:316 作者:wantingyun 欄目:網絡安全

變量,作為編程語言最基礎的部分,每種語言的變量不盡相同,但又大徑相庭。大部分編程語言的變量有塊級作用域,如if、for、while... 但JavaScript不純在塊級作用域,而是函數作用域,并且有自己獨有的特性--變量提升。(ES6新添加的let、const使其可以用塊級作用域)

  對于函數的變量訪問時遵循作用域鏈的,即當前函數運行時會有一個當前作用域,當飲用某個變量時,會先查找當前作用域內是否存在該變量的定義,如果不存在則根據作用域鏈向上去查找父函數的作用域,有則拿來使用,沒有則繼續向上直到全局作用域。關于作用域鏈這里就不仔細描述,簡單而言,類似原型鏈,從全局函數直到當前函數的作用域存在一種相互包含的關系,子可以向上訪問,但是父不可以向下訪問子函數的變量,這樣層層嵌套的關系鏈。

作用鏈域如下:

js變量提升和函數提升

var num = 10;

  function a (){
    console.log(num);
  }

  a() ;   //結果alert(10),a函數作用域里沒有num 所以向上查找外層的作用域,有且等于10所以彈出10而不是undefined.

js變量提升和函數提升

 

變量的提升:

js變量提升和函數提升

var num = 10;

  function a (){
       //var num;    console.log(num);
    var num = 11; //num = 11;  }

     a();    // undefined

js變量提升和函數提升

這段代碼中,function a(){}里的var num = 11;就拆分等價于被注釋掉的藍色部分,這就是變量提升--所有的變量都事先被提升到所屬函數作用域的頭部聲明。

 

再來看看有關函數形參的問題,第一段代碼稍加改動:

js變量提升和函數提升

var num = 10;

  function a (num){
    console.log(num);  
  }   a() ;   //結果undefined,a函數作用域定義形參num,由于沒賦值,所以為undefined

js變量提升和函數提升

 

函數的提升:

函數的聲明方式有倆種:函數聲明和函數表達式,在函數提升方面會有所不同

 

  函數聲明的函數提升:

js變量提升和函數提升

console.log(fn);  //function fn(){console.log(1);}
function fn(){    console.log(1); }

等同下面一段代碼:
function fn(){
    console.log(1);
}

console.log(fn);  //function fn(){console.log(1);}

js變量提升和函數提升

函數聲明中,聲明的函數整體被提升到作用域最頂部。

 

  函數表達式的函數提升:

js變量提升和函數提升

console.log(fn);  // undefined

var fn = function (){
          console.log(1);
     }

等同下面一段代碼:
var fn;
console.log(fn); // undefined

fn = function (){
  console.log(1);
}

js變量提升和函數提升

函數表達式中,類似于上面講的變量提升,var出來的變量被提到作用域最頂部聲明。


向AI問一下細節

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

AI

西乌| 平原县| 宣汉县| 武川县| 德保县| 怀化市| 巫山县| 万州区| 安丘市| 潮州市| 永吉县| 高台县| 南城县| 油尖旺区| 临澧县| 沭阳县| 内丘县| 宁明县| 本溪市| 邵东县| 松潘县| 宁城县| 苏尼特左旗| 遵义县| 永登县| 颍上县| 德化县| 沁阳市| 金寨县| 蚌埠市| 北票市| 石景山区| 临安市| 井冈山市| 南京市| 泾源县| 乐至县| 社旗县| 定兴县| 岳普湖县| 德化县|