JavaScript是面向Web的編程語言,也是一種基於對象和事件驅動的腳本語言,運行在客戶端,控制着網頁的行爲,和HTML,CSS並稱前端三大核心基礎知識。其中HTML控制着網頁的結構,CSS控制着網頁的樣式,外觀。前端
JavaScript和Java是徹底不一樣的兩種編程語言,雖然名字看起來類似,因此常常被初學者誤解。Java是一種能夠撰寫跨平臺應用的面向對象的編程語言,能夠理解爲:一切皆對象,開發簡單的程序也必須設計對象。JavaScript是一種直譯式腳本語言,主要活動與Web頁面,嵌入在HTML代碼中,幾乎無所不能。 編程
ECMAScript 是JavaScript實現所基於的標準。一般縮寫爲:ES
JavaScript 是該標準的實現之一,常常會據說ES6,ES2015,ES2017等等,稱呼不少,不必太在乎,知道本身所用的版本和當前流行改進的版便可本。 在這以前,很長一段時間裏,JavaScript開發都是基於ESCMAScript3標準。ES5也是一個巨大的改進版本,ES6更是給咱們帶了巨大驚喜。目前開發比較流行的是ES6。後端
儘管ECMAScript是一個很重要的標準。但並非JavaScript的所有,完整的JavaScript包括三個部分
1,核心,解釋器 (ECMAScript)
2, 文檔對象模型 (DOM)
3, 瀏覽器對象模型 (BOM)瀏覽器
JavaScript是伴隨着瀏覽器的誕生而誕生,因此JavaScript的執行環境最多的仍是瀏覽器,由於它是腳本語言,必須藉助引擎即解釋器來運行,因此它能夠在封裝了引擎的環境下運行,好比Node.js封裝了google的V8引擎,還有MongoDB。因此JavaScript運行環境能夠分爲:瀏覽器環境和非瀏覽器環境,做用於先後端,幾乎無所不能。
JavaScript最大的特色就是單線程,同一時間只能進行一項任務,須要排隊繼續下一個。
在瀏覽器環境中,JavaScript引擎按照script標籤代碼從上往下的順序加載並當即解釋執行,在解釋執行的過程當中有兩個重要時期:預編譯期和執行期,其中,預編譯期,須要注意幾點:
1,函數在未被調用的時候是不進行預編譯的
2,在本身所在的做用域中,var 聲明的變量和function定義的函數會被提高
3,預編譯以後,代碼安裝順序依次執行
4,函數體內的聲明不會前置到外部做用域,函數體的預解析發生在函數被調用的時候,預編譯以後,纔會執行函數體內的代碼編程語言