JavaScript的歷史

来源:https://www.cnblogs.com/ygjzs/archive/2019/11/06/11808284.html
-Advertisement-
Play Games

JavaScript歷史 它最初由Netscape的Brendan Eich設計。JavaScript是甲骨文公司的註冊商標。Ecma國際以JavaScript為基礎制定了ECMAScript標準。JavaScript也可以用於其他場合,如伺服器端編程。完整的JavaScript實現包含三個部分:E ...


JavaScript歷史

它最初由Netscape的Brendan Eich設計。JavaScript是甲骨文公司的註冊商標。Ecma國際以JavaScript為基礎制定了ECMAScript標準。JavaScript也可以用於其他場合,如伺服器端編程。完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型,瀏覽器對象模型。
Netscape在最初將其腳本語言命名為LiveScript,後來Netscape在與Sun合作之後將其改名為JavaScript。JavaScript最初受Java啟發而開始設計的,目的之一就是“看上去像Java”,因此語法上有類似之處,一些名稱和命名規範也借自Java。但JavaScript的主要設計原則源自Self和Scheme。JavaScript與Java名稱上的近似,是當時Netscape為了營銷考慮與Sun微系統達成協議的結果。為了取得技術優勢,微軟推出了JScript來迎戰JavaScript的腳本語言。為了互用性,Ecma國際(前身為歐洲電腦製造商協會)創建了ECMA-262標準(ECMAScript)。兩者都屬於ECMAScript的實現。儘管JavaScript作為給非程式人員的腳本語言,而非作為給程式人員的腳本語言來推廣和宣傳,但是JavaScript具有非常豐富的特性。
發展初期,JavaScript的標準並未確定,同期有Netscape的JavaScript,微軟的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(歐洲電腦製造商協會)的協調下,由Netscape、Sun、微軟、Borland組成的工作組確定統一標準:ECMA-262

以上這些是百度百科百度出來的JavaScript的歷史

然後再來說說他的創始人

布蘭登·艾奇(Brendan Eich,1961年~),JavaScript的發明人,目前(2005年至2014年)在Mozilla公司擔任首席技術長(Chief Technology Officer)。出任Mozilla的CEO十天就被迫辭職
他就是這樣的一個人

主題來了

今天看到一則評論是這樣寫的:

寫前端的直接承認就行了,JavaScript 這門語言被 Brendan Eich 搞的就是屎!一!樣!的!設!計!

Wiki 上原文:

JavaScript was originally developed in 10 days in May 1995 by Brendan Eich, while he was working for Netscape Communications Corporation. Indeed, while competing with Microsoft for user adoption of Web technologies and platforms, Netscape considered their client-server offering a distributed OS with a portable version of Sun Microsystems's Java providing an environment in which applets could be run.[citation needed] Because Java was a competitor of C++ and aimed at professional programmers, Netscape also wanted a lightweight interpreted language that would complement Java by appealing to nonprofessional programmers, like Microsoft's Visual Basic (see JavaScript and Java).[10]
大意就是 JavaScript 根本就是 Bredan Eich 這一個實習生在短時間內趕工出來的一個目標輕量級的解釋形語言。

Bredan Eich 本來是個寫 Lisp 的,壓根就沒搞過 OOP,但是當時網景想借 Java 的“東風”,結果他“苦熬”十天憋出來這麼個玩意兒。你能在 JavaScript 里看到很多 Lisp 的影子,感覺它好像是個函數式的。函數式里函數是第一等公民(即所謂的 First-Class Function),函數可以被當作參數傳遞給另一個函數,這裡就涉及到作用域的問題。可是又特麽有個不倫不類的 prototype 和 this,又有點兒像 OOP。call 和 apply 就是這種情況下的產物,又像函數式又像 OOP。
呵呵好幾個踩我的,都是前端沒跑了。

我自己也寫前端,寫這麼多年了誰罵 JS 我給誰點贊。

JS 是屎、可不代表用屎寫不出來牛嗶的作品來。這都拎不清的我勸你趁早轉行。

估計水平不咋地的人看到自己唯一會的一門語言被罵,只會急得跳腳,暗搓搓地點個踩心裡再噴兩句,也不想想自己寫的代碼是不是屎上加屎。


首先看到這個我不禁一抖,JavaScript真的是這樣嗎?
於是我查查了資料,資料上是這麼說的:
網景急於解決瀏覽器與用戶交互這個問題。當時解決這個問題有兩個辦法,一個是採用現有的語言,比如Perl、Python、Tcl、Scheme等等,允許它們直接嵌入網頁。另一個是發明一種全新的語言。
這兩個選擇各有利弊。第一個選擇,有利於充分利用現有代碼和程式員資源,推廣起來比較容易;第二個選擇,有利於開發出完全適用的語言,實現起來比較容易。到底採用哪一個選擇,網景公司內部爭執不下,管理層一時難以下定決心。
就在這時發生了一件大事,1995年Sun公司將Oak語言改名為Java,正式向市場推出。Sun公司大肆宣傳,許諾這種語言可以"一次編寫,到處運行"(Write Once, Run Anywhere),它看上去很可能成為未來的主宰。網景公司動了心,決定與Sun公司結成聯盟。它不僅允許Java程式以applet(小程式)的形式,直接在瀏覽器中運行;甚至還考慮直接將Java作為腳本語言嵌入網頁,只是因為這樣會使HTML網頁過於複雜,後來才不得不放棄。
總之,當時的形勢就是,網景公司的整個管理層,都是Java語言的信徒,Sun公司完全介入網頁腳本語言的
決策。 因此,Javascript後來就是網景和Sun兩家公司一起攜手推向市場的,這種語言被命名為"Java+script"並不是偶然的。此時,34歲的系統程式員Brendan Eich登場了。1995年4月,網景公司錄用了他。
Brendan Eich的主要方向和興趣是函數式編程,網景公司招聘他的目的,是研究將Scheme語言作為網頁腳本語言的可能性。Brendan Eich本人也是這樣想的,以為進入新公司後,會主要與Scheme語言打交道
僅僅一個月之後,1995年5月,網景公司做出決策,未來的網頁腳本語言必須"看上去與Java足夠相似",但是比Java簡單,使得非專業的 網頁作者也能很快上手。 這個決策實際上將Perl、Python、Tcl、Scheme等非面向對象編程的語言都排除在外了。
Brendan Eich被指定為這種"簡化版Java語言"的設計師。
重點內容
但是,他對Java一點興趣也沒有。為了應付公司安排的任務,他只用10天時間就把Javascript設計出來了。
由於設計時間太短,語言的一些細節考慮得不夠嚴謹,導致後來很長一段時間,Javascript寫出來的程式混亂不堪。如果Brendan Eich預見到,未來這種語言會成為互聯網第一大語言,全世界有幾百萬學習者,他會不會多花一點時間呢?
總的來說,他的設計思路是這樣的:
(1)借鑒C語言的基本語法;
(2)借鑒Java語言的數據類型和記憶體管理;
(3)借鑒Scheme語言,將函數提升到"第一等公民"(first class)的地位;
(4)借鑒Self語言,使用基於原型(prototype)的繼承機制。
所以,Javascript語言實際上是兩種語言風格的混合產物----(簡化的)函數式編程+(簡化的)面向對象編程。 這是由Brendan Eich(函數式編程)與網景公司(面向對象編程)共同決定的。
如果不是公司的決策,Brendan Eich絕不可能把Java作為Javascript設計的原型。作為設計者,他一點也不喜歡自己的這個作品:
"與其說我愛Javascript,不如說我恨它。它是C語言和Self語言yiyeqing的產物。十八世紀英國文學家約翰遜博士說得好:'它的優秀之 處並非原創,它的原創之處並不優秀。' (the part that is good is not original, and the part that is original is not good.)"

差不多以上就是JavaScript這門語言比較完整的介紹了,我覺得那個評論者的一句話很對:JS 是屎、可不代表用屎寫不出來牛嗶的作品來。這都拎不清的我勸你趁早轉行

最後

反正我是挺喜歡JavaScript這門語言的,但我還是感覺他還是有一點難,可能是因為我學的知識還不夠多吧
JavaScript借鑒了那馬多的語言的特性,我覺得已經很不錯,就這一點,我就覺得它是一門值得去學的語言,更何況經過
多年的發展,JavaScript從ES到ES再到ES,還有現如今流行的typescript,我總是相信JavaScript的道路會越走越好,就像那句話說的那樣:以後能用JavaScript實現的。都將會用JavaScript來實現,還有一點是,現在前端語言除了JavaScript來寫腳本,還能用其他什麼語言嗎?這個問題在JavaScript發明之初就面對過,正因為沒有更好的,所以,網景公司才會開發一門新的語言,來寫前端腳本,在隨著現如今的JavaScript在不斷地發展著,相比JavaScript剛問世被罵,被排擠,被瀏覽器禁用,好的太多太多了,我也相信JavaScript會一直是最優秀的前端腳本語言,最近正在讀JavaScript的那本犀牛書,就是JavaScript權威指南,我覺得挺有意思,也正是因為這個,我才慢慢喜歡上了JavaScript,祝JavaScript越來越好,我耶會對JavaScript繼續進行學習,JavaScript現如今可是非常獲得一門一門語言呢,正如所說的那樣:發明者要是知道,JavaScript現在回這嗎流行,他應會謹慎考慮而不會用十天時間來完成對他的創作吧,畢竟JavaScript現在可是可以寫出十分厲害的東西呢。
哈哈哈,JavaScript,不管別人怎嗎罵你,你作為我進入電腦領域的第一門語言(除了HTML,css),我一定不會討厭你的,現在大二,我估計我大學剩下的兩年還是會跟你好好相處的,OK,書寫完畢,洗澡去!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 蘋果認可的標識符 Apple提供了各種API,以方便用戶識別各種用途: 通用標識符(UDID) 在iOS的早期,蘋果公司提供了一個uniqueIdentifier財產上UIDevice-親切地稱為udid (不要與UUID混淆)。雖然這樣的功能在今天看來是不可想象的,但該屬性一直存在到IOS 5,直 ...
  • https://developer.umeng.com/docs/66632/detail/66748#createappid ...
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/225 最近線上報錯,有個用戶連續crash了10次左右,查看了下堆棧信息,發現是提示com.android.camera.action.CROP這個Inten ...
  • 版權聲明:本文為xing_star原創文章,轉載請註明出處! 本文同步自http://javaexception.com/archives/224 禁用EditText 這個其實很簡單,最簡單的一種方式,代碼如下 那麼還有其他的方式麽,我想應該是有的,以下的幾個api我並沒有做驗證 參考資料: ht ...
  • 在一個Vue的PC項目中,要求給錯誤圖片不要讓它顯示醜陋的圖片,就要給圖片寫一個失敗後的預設圖片, 在這裡寫了兩種方法, 第一種方法,也就是百度到的最多的代碼,就是給一張圖片一個預設值。 第二種問題,如果頁面中有很多地方都存在這個東西,那麼在不同的頁面中寫很對是很麻煩的。 就使用到了VUe的指令。 ...
  • 初級菜鳥的作品,各位大佬見笑了 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ...
  • 這是一個悲傷的故事。某日清晨,距離版本轉測還剩一天,切圖仔的我正按照計劃有條不紊的畫頁面。當我點擊一個下拉彈框組件中分頁組件頁數過多而出現的向後 5 頁省略號時,悲劇開始了,彈框被收回了。情景再現 問題 問題的表象很簡單,使用的是組件庫的下拉彈窗組件,在組件中使用到了分頁組件,當點擊分頁組件的向後 ...
  • ## 因為初級的內容較多,所以選了一些有用的 需要記憶的內容寫下 方便日後回顧 CSS語法 選擇符{屬性:屬性值;} ## 所有的css代碼 都要放在css樣式表裡面 1:內部樣式表 在head裡面添加 style標簽 2:外部樣式表 連接外部樣式表 <link rel="stylesheet" h ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...