目錄
解釋型語言與編譯型語言的差異
       javascript在瀏覽器核心的關係與原則認知
首頁 web前端 js教程 從基礎到精通--javascript語言

從基礎到精通--javascript語言

Jun 26, 2017 am 11:50 AM
javascript js 原理 基礎

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
建議:優秀JS開源人臉偵測辨識項目 建議:優秀JS開源人臉偵測辨識項目 Apr 03, 2024 am 11:55 AM

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

nohup的作用及原理解析 nohup的作用及原理解析 Mar 25, 2024 pm 03:24 PM

nohup的作用及原理解析在Unix和類Unix作業系統中,nohup是一個常用的命令,用於在後台運行命令,即便用戶退出當前會話或關閉終端窗口,命令仍然能夠繼續執行。在本文中,我們將詳細解析nohup指令的作用和原理。一、nohup的作用後台運行命令:透過nohup命令,我們可以讓需要長時間運行的命令在後台持續執行,而不受用戶退出終端會話的影響。這在需要運行

深入探討Struts框架的原理與實踐 深入探討Struts框架的原理與實踐 Feb 18, 2024 pm 06:10 PM

Struts框架的原理解析與實務探索Struts框架作為JavaWeb開發中常用的MVC框架,具有良好的設計模式和可擴展性,廣泛應用於企業級應用程式開發中。本文將對Struts框架的原理進行解析,並結合實際程式碼範例進行探索,幫助讀者更好地理解和應用該框架。一、Struts框架的原理解析1.MVC架構Struts框架是基於MVC(Model-View-Con

深入理解MyBatis中的批次Insert實作原理 深入理解MyBatis中的批次Insert實作原理 Feb 21, 2024 pm 04:42 PM

MyBatis是一款流行的Java持久層框架,廣泛應用於各種Java專案。其中,批次插入是常見的操作,可以有效提升資料庫操作的效能。本文將深入探討MyBatis中批量的Insert實作原理,並結合具體的程式碼範例進行詳細解析。 MyBatis中的批次Insert在MyBatis中,批量Insert操作通常使用動態SQL來實作。透過建構一條包含多個插入值的S

MyBatis分頁插件原理詳解 MyBatis分頁插件原理詳解 Feb 22, 2024 pm 03:42 PM

MyBatis是一個優秀的持久層框架,它支援基於XML和註解的方式操作資料庫,簡單易用,同時也提供了豐富的插件機制。其中,分頁插件是使用頻率較高的插件之一。本文將深入探討MyBatis分頁外掛的原理,並結合具體的程式碼範例進行說明。一、分頁外掛原理MyBatis本身並沒有提供原生的分頁功能,但可以藉助外掛程式來實現分頁查詢。分頁插件的原理主要是透過攔截MyBatis

深入探討Linux RPM工具的功能與原理 深入探討Linux RPM工具的功能與原理 Feb 23, 2024 pm 03:00 PM

Linux系統中的RPM(RedHatPackageManager)工具是安裝、升級、解除安裝和管理系統軟體套件的強大工具。它是RedHatLinux系統中常用的軟體包管理工具,也被許多其他Linux發行版採用。 RPM工具的角色非常重要,它使得系統管理員和使用者能夠方便地管理系統上的軟體包。透過RPM,使用者可以輕鬆安裝新的軟體包,升級現有的軟體

js和vue的關係 js和vue的關係 Mar 11, 2024 pm 05:21 PM

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

深度解析Linux chage指令的功能與工作原理 深度解析Linux chage指令的功能與工作原理 Feb 24, 2024 pm 03:48 PM

Linux系統中的chage指令是用來修改使用者帳號的密碼失效日期的指令,也可以用來修改帳號最長的可用日期等。此指令在管理使用者帳號安全性上扮演著非常重要的作用,可以有效控制使用者密碼的使用期限,並增強系統的安全性。 chage指令的使用方法:chage指令的基本語法為:chage[選項]使用者名稱例如,要修改使用者「testuser」的密碼失效日期,可以使用下列命

See all articles