轉載請註明出處,創做不易,更多文章請戳 https://github.com/ZhengMaste... javascript
前言:JavaScript誕生於1995年,它是一門腳本語言,起初的目的就是爲了解決前端頁面的動態效果,以及表單輸入效驗操做之類的。JavaScript的是由一家名爲網景公司開發的,可是1997年網景公司將它交給了歐洲計算機制造協會(ECMA),並在同年完成了ECMA—262,定義名爲ECMAScript的新標準的腳本語言。JavaScript是JavaScript的規格,而JavaScript是ECMAScript的一種實現。(一般一個完成的JavaScript不單單包含了ECMAScript還包括了DOM以及BOM)前端
相關版本:java
JavaScript 1.1 該版本在Netscape Navigator 3.0中使用。發佈於1996年8月19日。 JavaScript 1.3 發佈於1998年10月19日。符合ECMA-262第1版和第2版的標準。 JavaScript 1.5 發佈於2000年11月14日。符合ECMA-262第3版的標準。 JavaScript 1.6 發佈於發佈於2005年11月。加入了XML(E4X),Array方法,String以及泛型。 JavaScript 1.7 增長了許多東西,包括生成器,迭代器,數組解析,let表達式和解構賦值 JavaScript 1.8.5 包括符合ECMA-262 Edition 5的許多新功能。 這是最後一個JavaScript版本。
1997年7月,ECMAScript 1.0發佈。git
1998年6月,ECMAScript 2.0版發佈。es6
1999年12月,ECMAScript 3.0版發佈,成爲 JavaScript 的通行標準,獲得了普遍支持github
2009年12月,4.0版本爭議太大沒有發佈,ECMAScript 5.0版 正式發佈編程
2011年6月,ECMAScript 5.1版發佈,而且成爲 ISO 國際標準數組
2015年6月,ECMAScript 6 正式發佈,而且改名爲「ECMAScript 2015」,常稱爲es6瀏覽器
2016年6月,ES2016發佈,es7 服務器
2017年6月,ES2017發佈, es8
首先咱們查一下官方的定義,在維基百科裏它是這樣定義javascript這門語言的。
**JavaScript(一般縮寫爲JS)是一種高級的、解釋型的編程語言。JavaScript是一門基於原 型、函數先行的語言,是一門多範式的語言,它支持面向對象編程,命令式編程,以及函數 式編程。**
在客戶端,JavaScript在傳統意義上被實現爲一種解釋語言,但在最近,它已經能夠被即時編譯(JIT)執行。隨着最新的HTML5和CSS3語言標準的推行它還可用於遊戲、桌面和移動應用程序的開發和在服務器端網絡環境運行,如Node.js。
特性: 1、運行在客戶端瀏覽器上; 2、不用預編譯,直接解析執行代碼; 3、是弱類型語言,較爲靈活; 4、與操做系統無關,跨平臺的語言; 5、腳本語言、解釋性語言 解釋性語言:把作好的源程序翻譯一句,而後執行一句,直至結束; 執行速度慢、效率低;依靠解釋器、跨平臺性好 (Php、javascript、Pyhton) 弱類型語言:不須要給一個變量指定特定的數據類型,容許隱式類型轉換, 即時編譯(JIT):Just-in-time compilation,縮寫:JIT,是一種提升程序運行效率的方法 命令式編程:命令式編程的主要思想是關注計算機執行的步驟,即一步一步告訴計算機先作什麼再作什麼 函數式編程:函數式編程和聲明式編程是有所關聯的,由於他們思想是一致的:即只關注作什麼而不是怎麼作。 但函數式編程不單單侷限於聲明式編程,函數式編程最重要的特色是「函數第一位」,即函數能夠出如今任何地方. 好比你能夠把函數做爲參數傳遞給另外一個函數,不只如此你還能夠將函數做爲返回值。 基於原型、函數先行的語言:js使用基於原型的的繼承機制,函數是js的第一等公民
編譯型語言:把作好的源程序所有編譯成二進制代碼的可運行程序。而後,可直接運行這個程序編譯型語言,執行速度快、效率高;依靠編譯器、跨平臺性差些。
強類型語言:強類型語言,當你定義一個變量是某個類型,若是不通過代碼顯式轉換(強制轉化)過,它就永遠都是這個類型,若是把它當作其餘類型來用,就會報錯
動態類型語言:動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。例如JavaScript,Php,Python
靜態類型語言:靜態類型語言與動態類型語言恰好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明全部變量的數據類型,C/C++是靜態類型語言的典型表明,其餘的靜態類型語言還有C#、JAVA等
聲明式編程:聲明式編程是以數據結構的形式來表達程序執行的邏輯。它的主要思想是告訴計算機應該作什麼,但不指定具體要怎麼作。它有一個特色是它不須要建立變量用來存儲數據,另外一個特色是它不包含循環控制的代碼如 for, while(SQL 語句,網頁編程中用到的 HTML 和 CSS 也都屬於聲明式編程)