Firefox已經其它一些知名度較低的瀏覽器使用一種稱做Gecko的開源引擎;javascript
Safari和Chrome都使用一種叫WebKit的開源渲染引擎,但兩者具備不一樣的JavaScript引擎。Chrome使用Google V8,Safari使用其自有的閉源引擎,因爲兩者具備相同的渲染引擎,所以它們具備不少類似的特性;css
Opera使用一種叫作Presto的閉源引擎;html
IE使用一種叫作Trident的閉源引擎,ie6,ie7的該引擎是讓人恐懼的,在ie8上稍有改善,在ie9及之後改進很大。前端
在專業的討論中Gecko, V8, Webkit常常被提到,Trident, Presto使用較少。html5
有時候,跨瀏覽器的開發變得複雜,瀏覽器根據其支持狀況能夠被劃分爲A,B,C三類;java
A.最新的Firefox, IE, Safari/Chrome算法
> 支持狀況理想;
B. Opera以及較新版的主流瀏覽器segmentfault
> 支持狀況足夠好,可是在外觀和使用上可能具備一些缺點;
C. 老版主流瀏覽器瀏覽器
> 只支持核心功能
在學習Html的過程當中,你可能已經知道兩種渲染模式:標準模式(Standards)和怪異模式(Quirks ),實際上還存在第三種渲染模式「幾乎標準模式」(almost standards),能夠在這裏查看其詳細信息。ide
瀏覽器經過識別html頂部DOCTYPE的類型選擇對應的渲染模式。
對於現代的站點來講,<!DOCTYPE HTML>
是最好的。
這種聲明讓現代瀏覽器在標準模式下渲染網頁,讓老一些的瀏覽器在幾乎標準模式下渲染網頁。
值得注意的是,渲染模式的選擇不只關乎html,javascript的一些特性也依賴於渲染模式,尤爲是涉及到css盒子以及定位等相關功能時。
樣式的應用也是不一樣的,好比說在ie7上,嚴格模式時僞類:hover
能夠在任何元素上使用,而在非嚴格模式時,其只能用在連接上。
沒使用正確的DOCTYPE會使你的程序出現一些莫名奇妙的問題,記住要使用<!DOCTYPE HTML>
。
網上有兩大主流的關於JavaScript的手冊.
一是來自微軟的MSDN,這裏一般把JavaScript叫作「JScript」
> 在此查看資料時能夠在Google裏輸入相似「RegExp msdn」或「RegExp msdn jscript」這樣的語句來搜索。這裏適合查詢IE相關特性的信息;
另外一個是Mozilla社區的MDN;
> 在此查看資料時能夠在Google裏輸入相似「RegExp msc」,這裏適合查詢通用或者火狐相關的特性;
前端開發會碰到不少因誇瀏覽器而產生的不兼容問題,http://www.quirksmode.org/這個網站能夠幫你查詢兼容性,固然也可使用can i use.
對Javascript進行詳細說明(對語法,基本對象以及算法的正式描述)的語言叫作ECMAScript。
爲何不叫JavaScript
JavaScript這個商標爲Oracle(甲骨文)公司擁有(舊爲Sun公司擁有,Sun被Oracle收購)選擇叫作ECMAScript使得該標準獨立於商標全部者。
ECMAScript對JavaScript如何工做進行了詳細的描述,它是一個超前的信息源。
咱們處於一個不斷變化的時代,如今的標準是ES6,可是瀏覽器還處於不斷完善這些功能的過程當中;過去的ES5和ES3已被大多主流瀏覽器所支持。
當你想深刻學習JavaScript是如何工做的,ECMAScript是很好的信息源。不過須要注意,其中一些功能可能瀏覽器當前還不支持。
JavaScript是一門通用的語言,這就是爲何ECMAScript隻字不提瀏覽器的問題。
關於這個問題,HTML5裏有詳細的介紹。
W3.org DOM specifications是一個很是大可是頗有價值的地方,能夠把他們當作參考。搜索時能夠在Google裏輸入」something site:w3.org」來查找DOM以及事件相關的事情。
不過W3描述的是一種理想的狀態,可能和實際有所區別。