溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JavaScript的起源與發(fā)展史是什么

發(fā)布時間:2022-08-03 16:36:30 來源:億速云 閱讀:210 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“JavaScript的起源與發(fā)展史是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JavaScript的起源與發(fā)展史是什么”吧!

JavaScript的起源與發(fā)展史是什么

1、JavaScript的誕生

JavaScript因互聯(lián)網(wǎng)而生,緊跟瀏覽器的發(fā)展而發(fā)展。

1990年,歐洲核能研究所(CERN)科學(xué)家在互聯(lián)網(wǎng)(Internet)基礎(chǔ)上,發(fā)明了萬維網(wǎng)(World Wide Web),從此可以再網(wǎng)上瀏覽網(wǎng)頁文件。(互聯(lián)網(wǎng)是線路、協(xié)議以及通過TCP、IP協(xié)議實現(xiàn)數(shù)據(jù)電子傳輸?shù)挠布蛙浖募象w。Internet提供的主要服務(wù)有萬維網(wǎng)WWW、文件傳輸FTP、電子郵件E-mail、遠(yuǎn)程登錄Telnet等。萬維網(wǎng)則存在于互聯(lián)網(wǎng)之上,是由無數(shù)個網(wǎng)絡(luò)站點和網(wǎng)頁集合而成,構(gòu)成了因特網(wǎng)主要的部分。如果把互聯(lián)網(wǎng)看成是基礎(chǔ),萬維網(wǎng)就可以被看成是對互聯(lián)網(wǎng)的應(yīng)用)

1992年,美國國家超級電腦應(yīng)用中心(NCSA)開發(fā)了人類歷史上第一個瀏覽器Mosaic。

1994年,NCSA的程序員聯(lián)合一個風(fēng)投家成立Mosaic通信公司,后來更名為Netscape。開發(fā)面向普通用戶的新一代瀏覽器Netscape Navigator1.0版,市場份額一舉超過90%。

Netscape公司很快發(fā)現(xiàn),瀏覽器需要一種可以嵌入網(wǎng)頁的腳本語言來控制頁面行為。因為那時網(wǎng)速很慢而且網(wǎng)費很貴,有些操作不需要在服務(wù)端完成,可以把這些操作在瀏覽器端完成,從而提高效率。他們對這項腳本語言的設(shè)想是:功能不需要太強,語法簡單,容易學(xué)習(xí)和部署。 恰逢Sun公司java問世,兩家公司強強聯(lián)合,NetScript公司希望借助Java語言的聲勢,Sun公司則將自己的影響力擴展到瀏覽器,1995年,他們雇傭程序員十天時間就設(shè)計完成了這種語言的第一版,命名為JavaScript,對外宣稱JavaScript是Java的補充。

JavaScript誕生于1995年,當(dāng)時,它的主要目的是處理以前由服務(wù)器端需要負(fù)責(zé)的一些沒有輸入驗證操作。在JavaScript問世之前,必須把表單數(shù)據(jù)發(fā)送到服務(wù)器端才能確定用戶是否沒有填寫某個必填域,是否輸入了無效的值。Netscape Navigator希望通過JavaScript來解決這個問題。在人們普遍使用電話撥號上網(wǎng)的時代,能夠在客戶端完成一些基本的驗證任務(wù)絕對是令人興奮的。畢竟,撥號上網(wǎng)速度之慢,導(dǎo)致了與服務(wù)器的每一次數(shù)據(jù)交換事實上都成了對人們耐心的一次考驗。由此誕生了JavaScript!

JavaScript在1995年2月一經(jīng)發(fā)布就獲得了巨大的成功,Netscape隨后在Netscape Navigator 3(網(wǎng)景瀏覽器)中發(fā)布了JavaScript 1.1版本。JavaScript發(fā)展至今不斷迭代,已經(jīng)取得了偉大成就;但是JavaScript是由公司開發(fā)而成的,不便于其他公司拓展和使用,同時JavaScript開發(fā)者也在豐富自己的代碼和選擇使用框架方式,讓JavaScript運行在標(biāo)準(zhǔn)兼容的、無障礙的網(wǎng)頁中。

誕生之初

1995年,Brendan Eich進(jìn)入網(wǎng)景公司,在公司"看上去與Java足夠相似",但是比Java簡單,使得非專業(yè)的網(wǎng)頁作者也能很快上手”的要求下,用10天確定了設(shè)計思路并為其瀏覽器開發(fā)了js功能,以下為設(shè)計思路:

(1)借鑒C語言的基本語法;

(2)借鑒Java語言的數(shù)據(jù)類型和內(nèi)存管理;

(3)借鑒Scheme語言,將函數(shù)提升到"第一等公民"(first class)的地位;

(4)借鑒Self語言,使用基于原型(prototype)的繼承機制。

值得一提的是,Brendan本人并不喜歡自己的這個作品,雖然當(dāng)時很多人都十分喜歡Java語言,但Brendan卻不是其中一員,因此即使JavaScript在后來成為互聯(lián)網(wǎng)第一大語言,全世界有幾百萬學(xué)習(xí)者,但Brendan仍然不喜這個以Java為設(shè)計原型的作品,他將其稱為“C語言和Self語言一夜情的產(chǎn)物”。

發(fā)展過程

一般來說,完整的JavaScript包括以下幾個部分:

ECMAScript,描述了該語言的語法和基本對象(ECMAScript是紙上標(biāo)準(zhǔn),JavaScript是瀏覽器的實現(xiàn),紙上標(biāo)準(zhǔn)一般落后于瀏覽器)

文檔對象模型(DOM),描述處理網(wǎng)頁內(nèi)容的方法和接口

瀏覽器對象模型(BOM),描述與瀏覽器進(jìn)行交互的方法和接口

(1)JavaScript被設(shè)計出來后最初命名為Mocha,1995年9月在Netscape Navigator 2.0的Beta版中改名為LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署時被重命名為JavaScript;

(2)1996年8月IE 3 發(fā)布,支持 JScript (微軟實現(xiàn)的 JS)

(3)1996年11月,網(wǎng)景向ECMA提交語言標(biāo)準(zhǔn),由于版權(quán)問題,JS 語言標(biāo)準(zhǔn)不叫 JavaScript,叫 ECMAScript

(4)1997年6月,第一版ECMAScript發(fā)布

(5)1999年12月,第三版ECMAScript發(fā)布,這個版本使用最廣(第四版沒有發(fā)行成功)

(6)2006 年,jQuery 發(fā)布,它是目前最長壽的 JS 庫

(7)2009年12月,第五版ECMAScript發(fā)布,增加了一些功能

(8)2009 年,Ryan 基于 V8 (Chrome 的 JS 引擎叫做 V8)創(chuàng)建了 Node.js

(9)2010年,Isaac基于node.js寫出了npm

(10)2015年6月,第六版ECMAScript發(fā)布,新瀏覽器都支持這一版(之后每年發(fā)布一版,版本號以年份命名)

Javascript的設(shè)計缺陷

由于JavaScript的設(shè)計階段過于倉促,而且它結(jié)合了函數(shù)式編程和面向?qū)ο缶幊痰奶攸c,是歷史上的第一例,沒有先例可以參考,同時Javascript在推出一年半之后,國際標(biāo)準(zhǔn)就問世了,過早的標(biāo)準(zhǔn)化使Javascript的規(guī)格還沒來及調(diào)整就固化了,因此導(dǎo)致了Javascript的設(shè)計不夠完善,有很多失誤。

如果遵守良好的編程規(guī)范,加上第三方函數(shù)庫的幫助,Javascript的缺陷大部分可以回避,Javascript目前是網(wǎng)頁編程的唯一語言,會跟隨著互聯(lián)網(wǎng)不斷發(fā)展,同時只要發(fā)布新版本的語言標(biāo)準(zhǔn),就可以彌補這些設(shè)計缺陷。

以下為列舉的10個缺陷:

(1)不適合開發(fā)大型程序

Javascript沒有名稱空間(namespace),很難模塊化;沒有如何將代碼分布在多個文件的規(guī)范;允許同名函數(shù)的重復(fù)定義,后面的定義可以覆蓋前面的定義,很不利于模塊化加載。

(2)非常小的標(biāo)準(zhǔn)庫

Javascript提供的標(biāo)準(zhǔn)函數(shù)庫非常小,只能完成一些基本操作,很多功能都不具備。

(3)null和undefined易混淆,但是含義完全不同

null屬于對象(object)的一種,意思是該對象為空;undefined則是一種數(shù)據(jù)類型,表示未定義。在編程實踐中,null幾乎沒用。

(4)全局變量難以控制

Javascript的全局變量,在所有模塊中都是可見的;任何一個函數(shù)內(nèi)部都可以生成全局變量,這大大加劇了程序的復(fù)雜性。

(5)自動插入行尾分號

Javascript的所有語句,都必須以分號結(jié)尾。但是,如果你忘記加分號,解釋器并不報錯,而是為你自動加上分號。有時候,這會導(dǎo)致一些難以發(fā)現(xiàn)的錯誤。

(6)加號運算符

+號作為運算符,有兩個含義,可以表示數(shù)字與數(shù)字的和,也可以表示字符與字符的連接。這樣的設(shè)計,不必要地加劇了運算的復(fù)雜性。

(7)無需設(shè)計NaN

NaN是一種數(shù)字,表示超出了解釋器的極限,去掉NAN更有利于簡化程序。

(8)數(shù)組和對象的區(qū)分

由于Javascript的數(shù)組也屬于對象(object),所以要區(qū)分一個對象到底是不是數(shù)組,相當(dāng)麻煩。

(9)== 和 ===

==用來判斷兩個值是否相等。當(dāng)兩個值類型不同時,會發(fā)生自動轉(zhuǎn)換,得到的結(jié)果非常不符合直覺。因此,推薦任何時候都使用"==="(精確判斷)比較符。

(10)基本類型的包裝對象

Javascript有三種基本數(shù)據(jù)類型:字符串、數(shù)字和布爾值。它們都有相應(yīng)的建構(gòu)函數(shù),可以生成字符串對象、數(shù)字對象和布爾值對象。與基本數(shù)據(jù)類型對應(yīng)的對象類型,作用很小,造成的混淆卻很大。

2、JavaScript的定義

JavaScript是一種在網(wǎng)絡(luò)瀏覽器上運行的編程語言,這種編程語言我們稱之為腳本。而腳本語言是在瀏覽器執(zhí)行的語言,是一段程序,不是軟件。腳本語言可以添加到使用HTML和CSS構(gòu)建的網(wǎng)站中,在頁面加載時會自動執(zhí)行,并在實現(xiàn)各種頁面動態(tài)效果、交互方面發(fā)揮重要的作用;例如,在購物網(wǎng)站購物時,購物車的使用和成本估算就需要JavaScript,如果沒有JavaScript就無法完成結(jié)算,購物車的各項操作將無法實現(xiàn)。

JavaScript是一種在網(wǎng)絡(luò)瀏覽器上運行的編程語言。

它主要添加到使用HTML和CSS構(gòu)建的網(wǎng)站中,并在實現(xiàn)各種頁面動態(tài)效果方面發(fā)揮作用。 例如,網(wǎng)頁上顯示的輪播模式和在咨詢平臺上輸入內(nèi)容后顯示的提示信息不正確等。另外,在商場網(wǎng)站上購物時,購物車的使用和成本估算也 需要JavaScript。 因此,即使不是很明顯,它仍然是編碼人員經(jīng)常使用的語言。

JavaScript是一種多功能開發(fā)語言。

除了向網(wǎng)頁添加操作的有用性之外,JavaScript還可以用于實現(xiàn)許多其他功能。 例如,它可以開發(fā)各種網(wǎng)站應(yīng)用程序,例如“聊天工具”和“貨幣圖表”,它們可以實時修改,這是JavaScript的主要魅力之一。

JavaScript的特點是什么?

  • 腳本語言。 JavaScript是一種解釋型腳本語言。首先編譯和執(zhí)行C,C ++和其他語言,同時在程序運行期間逐行解釋JavaScript。

  • 基于對象。 JavaScript是一種基于對象的腳本語言,不僅可以創(chuàng)建對象,還可以使用現(xiàn)有對象。

  • 簡單。 JavaScript語言使用弱類型的變量類型。它對使用的數(shù)據(jù)類型沒有嚴(yán)格要求。它是一種基于Java基本語句和控件的腳本語言。它的設(shè)計既簡單又緊湊。

  • 動態(tài)。 JavaScript是一種事件驅(qū)動的腳本語言,無需通過Web服務(wù)器即可響應(yīng)用戶輸入。訪問網(wǎng)頁時,鼠標(biāo)可以在網(wǎng)頁上單擊鼠標(biāo),或上下移動并移動窗口。 JavaScript可以直接響應(yīng)這些事件。

  • 跨平臺。 JavaScript腳本語言不依賴于操作系統(tǒng),僅需要瀏覽器支持。因此,只要機器上的瀏覽器支持JavaScript腳本語言,那么編寫后就可以在任何機器上使用JavaScript腳本。目前,大多數(shù)瀏覽器都支持JavaScript。

3、 JavaScript語言版本更迭

為了讓JavaScript能夠運行在標(biāo)準(zhǔn)兼容的、無障礙的網(wǎng)頁中,也就是需要解決JavaScript的兼容問題;因此,歐洲計算機制造商協(xié)會ECMA牽頭制定JavaScript標(biāo)準(zhǔn),取名為ECMAScript,至此,JavaScript 的核心語言ECMAScript產(chǎn)生。ECMAScript 是一門由 ECMA TC39 委員會標(biāo)準(zhǔn)化的編程語言,其規(guī)定了JavaScript的編程語法和基礎(chǔ)核心知識,是所有瀏覽器廠商共同遵守的一套JavaScript語法工業(yè)標(biāo)準(zhǔn)。其在1997年正式發(fā)布第一版,歷經(jīng)十?dāng)?shù)年的迭代更新,于2018年發(fā)布了ECMAScript 8,其功能空前強大,增加了更加豐富的新特性。JavaScript語言版本更迭的發(fā)展歷史如下

JavaScript的起源與發(fā)展史是什么

4、JavaScript的應(yīng)用領(lǐng)域

經(jīng)過多年發(fā)展,JavaScript成為現(xiàn)代技術(shù)世界中很受歡迎和增長很快的編程語言之一,同時成為前端開發(fā)人員的最愛。那么,為什么JavaScript能夠有如此高的熱度呢?因為JavaScript有著豐富的用途,幾乎所有瀏覽器都支持它,是互聯(lián)網(wǎng)上比較流行的腳本語言。只要是稍微對前端感興趣,你肯定聽說過“大前端”,“全端”,JavaScript 完全符合這一趨勢,JavaScript可以寫前端、后端、客戶端,甚至可以寫各式應(yīng)用以及操作系統(tǒng)!下面這張圖表示JavaScript的實際使用功能與領(lǐng)域:

JavaScript的起源與發(fā)展史是什么

回顧JavaScript的發(fā)展歷史,JavaScript可運行在所有主要平臺的所有主流瀏覽器上,也可運行在每一個主流操作系統(tǒng)的服務(wù)器端,足以證明JavaScript無處不在的魅力!

感謝各位的閱讀,以上就是“JavaScript的起源與發(fā)展史是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JavaScript的起源與發(fā)展史是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI