首頁  >  文章  >  web前端  >  從基礎到精通--javascript語言

從基礎到精通--javascript語言

零下一度
零下一度原創
2017-06-26 11:50:371060瀏覽

javascript是一種具有物件導向能力的、解釋型的程式設計語言。它是基於物件和時間驅動,並具有相對安全性的客戶端腳本語言。因為它並不需要在一個語言環境下運行,只需要有支援它的瀏覽器即可,它的主要目的是驗證發送到伺服器斷的數據,增加web互動,加強用戶體驗。

 

解釋型語言與編譯型語言的差異

       解釋型語言:這種是運作的時候就將程序編譯成機器語言。

       編譯型語言:這種是執行程式錢有一個編譯過程,但是不是將程式編譯成機器語言,而是編譯成字節碼。例如java語言在運作的時候,由JVM將字節碼在翻譯成機器語言。 JVM是java虛擬機,是一個虛構出的計算機。

       但是解釋型語言在編譯的效率上比編譯型語言慢,javascript是一種解釋型語言。它在將程式放在瀏覽器上解析的時候,js在瀏覽器上自己的解釋引擎。 javascript v8引擎。瀏覽器核心把js編譯成view要進行“詞法分析”,“語法分析”,“程式碼生成”三個階段。這是明顯的編譯型語言特徵。詳見《犀牛書第二章》《你不知道的javascript》第一章。

 

java程式碼由JVM執行

#javascript是由javascript解釋器執行

每個瀏覽器的並不一樣,一般都包含在各瀏覽器的核心中

瀏覽器核心一般包含兩個引擎:頁排版引擎JS引擎

IE的使用的自己的Trident 核心

FireFox 是Gecko核心

Opera   是Presto核心

Safari  使用的Webkit 核心

Chrome  是Google自己的javascript V8引擎而其頁面排版採用的Webkit 核心

 

       javascript是腳本語言,腳本語言也是解譯型語言,腳本語言不需要編譯,直接由解釋器來解釋即可。從剛才的javascript是編譯型語言的論證來看,javascript也是編譯型語言。就不能一概而論是腳本語言。認識腳本語言的方式很簡單。

寫一個程式叫xxx.exe,點選.exe可以開啟.aa為副檔名的檔案。那麼你就是為.aa的檔案編寫指定了規則,這就是腳本所做的事情與關係,透過指令去讓程式按照順序執行。

 

       javascript在瀏覽器核心的關係與原則認知

       瀏覽器解析渲染頁原則:##  一定要提到大家比較熟悉的webkit,Google瀏覽器的渲染引擎。在其他瀏覽器中的渲染引擎並不相同,每個瀏覽器的核心引擎都不一致,所以導致了現在我們在編寫html程式碼做頁面結構佈局的過程中要做很多關於各大瀏覽器的兼容性問題。

       瀏覽器最重要、最核心的部分則是解釋引擎也就是瀏覽器核心。一個網頁正常的工作需要用到兩個引擎:渲染引擎​​和解釋引擎。相容性的各種寫法都是針對這些瀏覽器核心引擎去做的。於是現在的主流瀏覽器核心有哪些呢?

      

       現市中的四大主流瀏覽器

      

IE

#  大核心中處理速度最慢)       由於window市場的佔有率,IE瀏覽器借助其地位造成了Trident核心一家獨大的情況,因為這種情況出現,微軟也長時間沒有去對Trident做過更新,Trident出現了與W3C標準的脫節問題與大量BUG和安全性問題無法解決,直接導致了FireFox瀏覽器的崛起。但因為其市場佔有率的原因,現在作為前端開發工程師最頭痛的兼容處理還是針對於IE的一些低版本。

      

FireFox

#      所使用的瀏覽器核心為       Gecko

       開放原始碼,運轉處理速度快速。開源的東西總是容易受到廣大猿類的歡迎!而且使用Gecko的瀏覽器也非常多,一般是用在一些國外的瀏覽器上。國內不作多的考量!

       Opera

#       所使用的瀏覽器核心為       presto

#   網頁排版引擎。為了渲染速度的提升做了極高優化,簡單來講就是為了效率為了速度不顧一切。但是有得必有失,速度是犧牲了相容性才得來的。毋庸置疑,它是在所有瀏覽器核心解析javascript速度是最快的。但到如今因為前端的發展速度太快,一切以使用者體驗為先,不能在以犧牲相容性換取速度。 Opera停用了presto改用了Google的Blink核心。

      

Chrome

       所使用的瀏覽器核心為       webkit渲染引擎  javascript v8引擎# #      webkit這裡就不作多解釋了。這也是很多人開始學習前端和廣大前端工程師比較喜好的一個瀏覽器Chrome瀏覽器的核心。它是蘋果公司自己的核心。

      

殼體瀏覽器

       以IE核心而非IE瀏覽器,這類瀏覽器稱為「套殼瀏覽器」。出現的原因是因為Trident是一款開放的內核,所以國內市場上出現了大量的這種殼瀏覽器。例如360、騰訊TT、獵豹、遨遊之類,採用雙核內甚至多核的方式,其中有一個為Trident內核,其他的在添加其他內核。國內的瀏覽器廠商一般把這種情況分為兩種,“高速瀏覽模式”與“兼容瀏覽模式”,以供用戶來回切換使用,其中IE內核Trident則是“兼容瀏覽模式”,因為國內的廠商所套用的IE核心版本都不會很高,跟不上Trident的迭代更新的速度,低版本的IE核心體積過小,方便用戶下載。所以從發展之初便被廣泛捆綁安裝使用,直到發展到現在,安全性也會有一定的問題。

       以上眾多問題的提出,一步一步的解決與認知。我們知道了什麼是解釋型語言,什麼是編譯型語言。透過解釋型語言認識了瀏覽器內核,它們之間的一些差異與我們平時寫程式碼的過程中息息相關的事情。在web前端的學習過程中或說是在不斷的提升自己的過程中,理解並且認識javascript一定是最重要的。在javascript的發展過程中,或許在之前很多的朋友都認為javascript有沒有必要去潛心學習?從當下開始,如果有人像你諮詢,想要學習語言或是想要掌握新的語言,你需要向他推薦javascript,一定是javascript。從jQuery的出現第一次帶動javascript的發展,到html5讓javascript真正的做到讓人們認識,再到現在的nodejs。徹底的顛覆了之前大部分人對javascript的一些看法。這些新型的框架出現讓javascript真正的潛力無限!

      

html5是javascript的高階內容進階部分

       現在還是有許多人把html5與html連結,它們之間有相關性嗎?不過是做了一些優化,增加了一些新的標籤,新的標籤也不難理解方便使用,為什麼就定義成html基礎部分了呢?

       html5的真正威力在於你能透過javascript來創造標籤,利用核心的兩種特性去分別解釋與渲染,canvas被人所熟知也是因為其功能強大,動畫、特效、遊戲、數據的可視化。都是需要透過javascript與後台的支援才能有其效果。所有的一切都要歸功與javascript。 webgl支援html5畫布繪製3D影像效果。 html5的地理位置支出在瀏覽器中顯示則是LBS應用等等。 javascript與文檔型資料庫的對接做到了太多的不可能。 ECMAscript版本的不斷迭代更新,出現了太多太多以其為基礎的js框架,vuejs、angularjs、reactjs...

以上是從基礎到精通--javascript語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn