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 MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...