好程式設計師web前端教程分享JS基礎知識

好程式設計師IT發表於2019-10-23

  好程式設計師web前端教程分享JS 基礎知識為大家分享一篇關於JS 的基礎知識。

 

  1 、執行環境:有時也叫環境,是 JavaScript 中最為重要的一個概念,執行環境定義了變數或函式有權訪問的其他資料。

 

  2 、變數物件:每一個執行環境都有一個與之關聯的變數物件,環境中定義的所有的變數和函式都儲存在這個的物件中。

 

  3 、作用域鏈:程式碼在環境中執行時,會建立變數物件的作用域鏈,保證對執行環境有權訪問的所有變數和函式的有序訪問。作用域鏈的前端,始終是當前執行程式碼所在環境的變數物件。

 

  4 、活動物件:如果當前執行環境是函式,則將活動物件作為變數物件。

 

  5 、可執行程式碼:

 

  1) 全域性程式碼:例如載入外部的 JS 檔案或者本地標籤內的程式碼,全域性程式碼不包括 function 體內的程式碼 ;

 

  2) 函式程式碼: function 體內的程式碼 ;

 

3) eval 程式碼: eval() 函式計算某個字串,並執行其中的 JS 程式碼,比如

eval("alert('helloworld')")

 

 

  6 、執行上下文棧:在一個 JS 程式中,必定會產生多個執行上下文, JS 引擎會以棧的方式來處理它們,也就是執行上下文棧。

 

  7 、作用域: JS 是一種沒有塊級作用域的語言 ( 包括 if for 等語句的花括號程式碼塊或者單獨的花括號程式碼塊都不能形成一個區域性作用域 ) ,所以 js 的區域性作用域的形成有且只有函式的花括號內定義的程式碼塊形成的,既函式作用域。

 

  8 、作用域鏈:是作用域規則的實現,透過作用域鏈的實現,變數在它的作用域內可被訪問,函式在它的作用域內可被呼叫。

 

  作用域鏈是一個只能單向訪問的連結串列,這個連結串列上的每個節點就是執行上下文的變數物件,單向連結串列的頭部( 可被第一個訪問的節點 ) 始終都是當前正在被呼叫執行的函式的變數物件 ( 活動物件 ) ,尾部始終是全域性活動物件。

 

  9 、閉包:函式物件可以透過作用域鏈相互關聯起來,函式體內的資料 ( 變數和函式宣告 ) 都可以儲存在函式作用域內,這種特性在電腦科學文獻中被稱為“閉包”。

 

從技術角度來說,JS 的函式都是閉包:函式都是物件,都關聯到作用域鏈,函式內資料都被儲存在函式作用域內。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2661150/,如需轉載,請註明出處,否則將追究法律責任。

相關文章