前端開發技術,從狹義的定義來看,是指圍繞HTML、JavaScript、CSS這樣一套體系的開發技術,它的運行宿主是瀏覽器。javascript
最先期的Web界面基本用於瀏覽某些文檔內容,最簡單的是這樣一個文件:html
<!doctype html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>標題1</h1>
<h2>標題2</h2>
<p>段落</p>
</body>
</html>
複製代碼
萬維網(WWW)是歐洲核子研究組織的一幫科學家爲了方便看文檔、傳論文而創造的,這就是爲何Web網頁都基於Document。Document就是用標記語言+超連接寫成的由文字和圖片構成的HTML頁面,這樣的功能已經徹底知足學術交流的須要,因此網頁的早期形態和Document同樣,徹底基於HTML頁面,而且全部內容都是靜態的。前端
在1995年時,由Netscape公司的Brendan Eich,在網景導航者瀏覽器上首次設計實現而成。由於Netscape與Sun合做,Netscape管理層但願它外觀看起來像Java,所以取名爲JavaScript。java
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input id="firsInput" type="text" />
<input id="lastInput" type="text" />
<input type="button" onclick="print()" value="獲取內容"/>
<script> function print() { var firstName = document.getElementById("firstNameInput").value; var lastName = document.getElementById("lastNameInput").value; alert("Hello, " + firstName + "." + lastName); } </script>
</body>
</html>
複製代碼
因爲靜態界面不能實現保存數據等功能,出現了不少服務端技術,ASP(使用VBScript或者JScript),JSP(使用Java),PHP等等,有了這類技術,在HTML中就可使用表單的post功能提交數據了,好比:react
<form method="post" action="username.asp">
<p>First Name: <input type="text" name="firstName" /></p>
<p>Last Name: <input type="text" name="lastName" /></p>
<input type="submit" value="Submit" />
</form>
複製代碼
互聯網發展的早期,先後端開發是一體的,前端代碼是後端代碼的一部分。jquery
ajax是Asynchronous javascript and XML的縮寫,此後前端再也不是後端的模板,能夠獨立獲得各類數據。程序員
因爲Ajax的出現,規模更大,效果更好的Web程序逐漸出現,在這些程序中,JavaScript代碼的數量迅速增長。出於代碼組織的須要,「JavaScript框架」這個概念逐步造成,當時的主流是prototype和mootools,這二者各有千秋,提供了各自方式的面向對象組織思路。web
早期的網頁開發是由後端主導的,前端能作的也就是操做一下DOM。2006年 John Resig發佈了jQuery,jQuery主要用於操做DOM,其優雅的語法、符合直覺的事件驅動型的編程思惟使其極易上手,所以很快風靡全球,大量基於jQuery的插件構成了一個龐大的生態系統。ajax
$("*") //選取全部元素
$("#lastname") //選取id爲lastname的元素
$(".intro") //選取全部class="intro"的元素
$("p") //選取全部<p>元素
$(".intro.demo") //選取全部 class="intro"且class="demo"的元素
複製代碼
隨着Web端功能的日益複雜,人們開始考慮這樣一些問題:編程
在這種背景下,出現了一些前端MVC、MVP、MVVM框架,目前主流VueJs, ReactJs, AngularJS,另Backbone.js,Ember.js,Spine.js等
2009年,Node 項目誕生,它是服務器上的 JavaScript 運行環境。
Node = JavaScript + 操做系統 API
Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。
互聯網進入了移動時代。web app也隨之出現,相比原生應用,Web APP有太多好處:無須開發兩套系統版本、無須安裝、無須手動升級、無須審覈……
fullpage API,Geolocation API、Vibration API、Luminosity API、Orientation API、CameraAPI、各類離線方案……都是對web app的支撐。
web app惟一的缺點就是Web App性能差,也就是這個緣由,Native App還能做爲主流存在一段時間,但是若是Web App的性能逐漸遇上Native了呢?目前的Hybrid、nw.js、Electron、react native、weex、ionic等均可以看作Web App在性能方面向Native靠近的嘗試。更況且半路又殺出個微信小程序。
three.js是使用默認的WebGL渲染器建立一個易於使用,輕量級的3D庫。 該庫還在示例中提供了Canvas 2D,SVG和CSS3D渲染器。使得前端對圖形學也佔有一席之地。
代碼是一種邏輯思想,看待問題解決問題的抽象,不一樣程序員有不一樣的世界觀,創造出不一樣的編程語言,本質是數學,函數。因此語言之間是互通的,只是語法規則不同,有不用的使用場景。
但願有一天編程語言能大統一,在一種指導思想下,有多個分支,解決不一樣的應用場景。