搜尋
首頁web前端前端問答javascript是什麼類型語言

javascript是什麼類型語言

Apr 19, 2021 pm 05:13 PM
javascript

javascript是一種動態類型、弱類型的語言,是一種基於物件和事件驅動並具有相對安全性並廣泛用於客戶端網頁開發的腳本語言,同時也是一種廣泛用於客戶端Web開發的腳本語言。

javascript是什麼類型語言

本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

JavaScript,也稱為ECMAScript,是一種基於物件和事件驅動並具有相對安全性並廣泛用於客戶端網頁開發的腳本語言,同時也是一種廣泛用於客戶端Web開發的腳本語言。

最早是在HTML上使用的,用來為HTML網頁添加動態功能,由Netscape的LiveScript發展而來的原型化繼承的物件導向的動態類型的區分大小寫的客戶端腳本語言,主要目的是為了解決伺服器端語言,例如Perl,遺留的速度問題及響應用戶的各種操作,為客戶提供更流暢的瀏覽效果。因為當時服務端需要對資料進行驗證,由於網路速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。於是Netscape的瀏覽器Navigator加入了Javascript,提供了資料驗證的基本功能。然而現在JavaScript也可用於網頁伺服器,如Node.js。

一、javascript的組成

一個完整的JavaScript 實作是由以下3 個不同部分組成的:

  • ECMAScript:描述了該語言的語法和基本物件;

  • 文件物件模型(Document Object Model,簡稱DOM)):描述處理網頁內容的方法和介面;

  • 瀏覽器物件模型(Browser Object Model,簡稱BOM)):描述與瀏覽器互動的方法和介面。

二、javascript的基本特點

  • #是一種解釋性腳本語言(程式碼不預先編譯) 。

  • 主要用來在 HTML 頁面上新增互動行為。

  • 可以直接嵌入 HTML 頁面,但寫成單獨的js檔案有利於結構和行為的分離。

三、javascript的特性

有不同於伺服器端腳本語言,例如PHP與ASP,JavaScript主要被當作客戶端腳本語言在用戶的瀏覽器上運行,不需要伺服器的支援。所以在早期程式設計師比較青睞JavaScript以減少對伺服器的負擔,而同時也帶來另一個問題:安全性。

而隨著伺服器的強壯,雖然現在的程式設計師更喜歡運行於服務端的腳本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。同時,有些特殊功能(如AJAX)必須依賴Javascript在客戶端進行支援。隨著引擎如V8和框架如Node.js的發展,及其事件驅動及非同步IO等特性,JavaScript逐漸被用來編寫伺服器端程式。

【推薦學習:javascript高階教學

四、JavaScript的發展歷史背景

1、Nombas和ScriptEase

大概在1992年,一家稱作Nombas的公司開發了一種叫做C 減減(C-minus-minus,簡稱Cmm)的嵌入式腳本語言。 Cmm 背後的理念很簡單:一個足夠強大可以取代巨集操作(macro)的腳本語言,同時保持與 C (和 C )足夠的相似性,以便開發人員能很快學會。這個腳本語言捆綁在一個稱為 CEnvi 的共享軟體中,它首次向開發人員展示了這種語言的威力。

Nombas 最後把 Cmm 的名字改成了 ScriptEase,原因是後面的部分(mm)聽起來過於消極,同時字母 C 「令人害怕」。

現在 ScriptEase 已經成為了 Nombas 產品背後的主要動力。

2、Netscape發明了JavaScript

當 Netscape Navigator 嶄露頭角時,Nombas 開發了一個可以嵌入網頁中的 CEnvi 的版本。這些早期的試驗被稱為 Espresso Page(濃縮咖啡般的頁面),它們代表了第一個在萬維網上使用的客戶語言。而 Nombas 絲毫沒有料到它的理念將會成為萬維網的一塊重要基石。

當網路衝浪越來越流行時,開發客戶端腳本的需求也逐漸增加。此時,大部分因特網用戶還僅透過 28.8 kbit/s 的數據機連接到網絡,即便這時網頁已經不斷地變得更大和更複雜。而更加劇使用者痛苦的是,僅僅為了簡單的表單有效性驗證,就要與伺服器進行多次往返互動。設想一下,使用者填完一個表單,點擊提交按鈕,等待了 30 秒的處理後,看到的卻是一條告訴你忘記填寫一個必要的欄位。

當時正處於技術革新最前沿的 Netscape,開始認真考慮開發一種客戶端腳本語言來解決簡單的處理問題。

當時工作於Netscape的Brendan Eich,開始著手為即將在1995 年發行的Netscape Navigator 2.0 開發一個稱為LiveScript 的腳本語言,當時的目的是在瀏覽器和伺服器(本來要叫它LiveWire)端使用它。 Netscape 與 Sun 及時完成 LiveScript 實作。

就在 Netscape Navigator 2.0 即將正式發布前,Netscape 將其更名為JavaScript。雖然Netscape在最初將腳本語言命名為LiveScript,後來Netscape在與Sun合作後將其改名為JavaScript。 JavaScript最初受Java啟發而開始設計的,目的之一就是“看起來像Java”,因此語法上有類似之處,一些名稱和命名規範也藉自Java。但JavaScript的主要設計原則源自於Self和Scheme。

JavaScript與Java名稱上的近似,就是當時網景為了行銷考量與太陽微系統達成協議的結果。為了取得技術優勢,微軟推出了JScript來迎戰JavaScript的腳本語言。為了互用性,Ecma國際(前身為歐洲電腦製造商協會)創建了ECMA-262標準(ECMAScript)。現在兩者都屬於ECMAScript的實作。儘管JavaScript作為給非程式設計師的腳本語言,而非作為給程式設計師的腳本語言來推廣和宣傳,但JavaScript具有非常豐富的特性。 JavaScript 從此變成了網際網路的必備元件。

3、三腳鼎立

因為 JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發布了 1.1 版。恰巧那個時候,微軟決定進軍瀏覽器,發布了 IE 3.0 並搭載了一個 JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領域的這一重要一步雖然令其聲名狼藉,但也成為 JavaScript 語言發展過程中的重要一步。

在微軟進入後,有3種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他程式語言不同的是,JavaScript 並沒有一個標準來統一其語法或特性,而這 3 種不同的版本恰恰突顯了這個問題。隨著業界擔心的增加,這個語言的標準化顯然已經勢在必行。

4、標準化

1997年,JavaScript 1.1 作為一個草稿提交給歐洲電腦製造商協會(ECMA)。第39技術委員會(TC39)被委派來「標準化一個通用、跨平台、中立於廠商的腳本語言的語法和語意」。由來自 Netscape、Sun、微軟、Borland 和其他一些對腳本程式設計感興趣的公司的程式設計師組成的 TC39 錘鍊出了 ECMA-262,該標準定義了名為 ECMAScript 的全新腳本語言。

目前符合ECMA-262 3rd Edition 標準的實作有:

  • Microsoft 公司的JScript

  • Mozilla 的JavaScript- C(C語言實作),現名SpiderMonkey

  • Mozilla 的Rhino(Java 實作)

  • Digital Mars 公司的DMDScript

  • Google 公司的V8

javascript是什麼類型語言
(點擊可看大圖)

在接下來的幾年裡,國際標準化組織及國際電工委員會(ISO/IEC)也採納ECMAScript 作為標準(ISO/IEC-16262)。從此,Web 瀏覽器就開始努力(雖然有著不同的程度的成功與失敗)將 ECMAScript 作為 JavaScript 實作的基礎。

五、JavaScript常用來完成以下任務

1、嵌入動態文字於HTML頁面

2、對瀏覽器事件回應

3、讀寫HTML元素

4、在資料被提交到伺服器之前驗證資料

5、偵測訪客的瀏覽器資訊

6、控制cookies,包括創建和修改等

六、Javascript的使用方式

#Javascript加入網頁有兩種方法:直接方式和引用方式。

1、直接方式

這是最常用的方法,大部分含有Javascript的網頁都採用這種方法,例如:

<html>
     <head>
     <title>简单的JavaScript Hello World</title>
        <script type="text/javascript">
            document.write("Hello, 马海祥博客!");   // 在浏览器视窗内直接显示
            alert("Hello, 马海祥博客!");            //  弹窗显示
            console.log("Hello, 马海祥博客!");      // 在控制台(console)里显示,需要先开启开发工具控制台
        </script>
     </head>
     <body>
  HTML页面内容……
     </body>
  </html>

在這個例子中,我們可看到一個新的標籤:<script>……</script>,而

注意在非xhtml文檔中插入script標籤時,如果不是引用外部文件,應該在script內加上cdata聲明,避免大於和小於運算子引起的瀏覽器解析錯誤

2、引用方式

如果已經存在一個Javascript原始檔(通常以js為副檔名),則可以採用這種引用的方式,以提高程式碼的使用率。其基本格式如下:

<script src=“url” type="text/javascript"></script>

其中的Url就是程序文件的地址。同样的,这样的语句可以放在HTML文档头部或主体的任何部分。如果要实现“直接插入方式”中所举例子的效果,可以首先创建一个Javascript源代码文件“Script.js”,其内容如下:

document.write("这是Javascript!采用直接插入的方法!");

在网页中可以这样调用程序:

也可以同时在导入文件时制定javascript的版本,例如:

注意:凡是指定了src属性的script标签里的内容都会被忽略。

更多编程相关知识,请访问:编程视频!!

以上是javascript是什麼類型語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
了解usestate():綜合反應國家管理指南了解usestate():綜合反應國家管理指南Apr 25, 2025 am 12:21 AM

useState()isaReacthookusedtomanagestateinfunctionalcomponents.1)Itinitializesandupdatesstate,2)shouldbecalledatthetoplevelofcomponents,3)canleadto'stalestate'ifnotusedcorrectly,and4)performancecanbeoptimizedusinguseCallbackandproperstateupdates.

使用React的優點是什麼?使用React的優點是什麼?Apr 25, 2025 am 12:16 AM

ReactispupularduetoItsOmpontement,基於虛擬,虛擬詞,Richecosystem和declarativedation.1)基於組件的harchitectureallowslowsforreusableuipieces。

在React中調試:識別和解決共同問題在React中調試:識別和解決共同問題Apr 25, 2025 am 12:09 AM

todebugreactapplicationsefectefectionfection,usethestertate:1)proppropdrillingwithcontextapiorredux.2)使用babortControllerToptopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRollerTopRaceeDitions.3)intleleassynChronOusOperations.3)

反應中的usestate()是什麼?反應中的usestate()是什麼?Apr 25, 2025 am 12:08 AM

usestate()inrectallowsStateMagementionInfunctionalComponents.1)ITSIMPLIFIESSTATEMAGEMENT,MACHECODEMORECONCONCISE.2)usetheprevcountfunctionToupdateStateBasedonitspReviousViousViousvalue,deveingingStaleStateissues.3)

usestate()與用戶ducer():為您的狀態需求選擇正確的掛鉤usestate()與用戶ducer():為您的狀態需求選擇正確的掛鉤Apr 24, 2025 pm 05:13 PM

selectUsestate()forsimple,獨立的variables; useusereducer()forcomplexstateLogicorWhenStatedIppedsonPreviousState.1)usestate()isidealForsImpleupDatesLikeToggGlikGlingaBglingAboolAboolAupDatingacount.2

使用usestate()管理狀態:實用教程使用usestate()管理狀態:實用教程Apr 24, 2025 pm 05:05 PM

useState優於類組件和其它狀態管理方案,因為它簡化了狀態管理,使代碼更清晰、更易讀,並與React的聲明性本質一致。 1)useState允許在函數組件中直接聲明狀態變量,2)它通過鉤子機制在重新渲染間記住狀態,3)使用useState可以利用React的優化如備忘錄化,提升性能,4)但需注意只能在組件頂層或自定義鉤子中調用,避免在循環、條件或嵌套函數中使用。

何時使用usestate()以及何時考慮替代狀態管理解決方案何時使用usestate()以及何時考慮替代狀態管理解決方案Apr 24, 2025 pm 04:49 PM

useUsestate()forlocalComponentStateMangementighatighation; 1)usestate()isidealforsimple,localforsimple.2)useglobalstate.2)useglobalstateSolutionsLikErcontExtforsharedState.3)

React的可重複使用的組件:增強代碼可維護性和效率React的可重複使用的組件:增強代碼可維護性和效率Apr 24, 2025 pm 04:45 PM

ReusableComponentsInrectenHanceCodainainability and效率byallowingDevelostEsteSeTheseTheseThesAmeCompOntionActActRossDifferentPartSofanApplicationorprojects.1)heSredunceRedUndenceNandSimplifyUpdates.2)yensureconsistencyInuserexperience.3)

See all articles

熱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

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

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

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

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境