JavaScript和它父親的故事

小橋流水嘩啦啦發表於2018-11-05

附贈脫單祕籍:瞭解一些JavaScript的歷史,聊天的時候說不好可以獲得更多程式設計師小妹子的崇拜的喲~ ๑乛◡乛๑~

閱讀本文可以讓你更好的理解什麼是ECMAScript。

JavaScript和它父親的故事
本次文章內容來自:《JavaScript高階程式設計》,本書可以說在學習JavaScript的路上一直被奉為經典之作。 但是因為紙質書相對厚重,不是很方便,並且內容較多,小夥伴可能望而卻步,這次專門準備了紅寶書系列,從每一章中摘出內容來分享給大家,並且額外做一些擴充套件~走過路過不要錯過啦~

JavaScript的誕生

JavaScript誕生於1995年,誕生的目的主要是為了負責一些輸入驗證的操作(例如:我們經常驗證表單中的輸入是否符合要求)。在1995年之前,表單驗證的操作方法是必須把表單資料傳送至伺服器,才能確定使用者是否沒有填寫某個必須要填寫的內容,中間耗費的時間可以想象。如果我是使用者可能著急的想拍桌子,這種感覺不亞於一張一直載入不出來的圖片,像這類抓狂的使用者體驗必須得到改變! 於是,Netscape Navigator(網景)就希望通過JavaScript來解決這個問題。

後來隨著時代進步,JavaScript也在快速發展,時至今日,我們可以通過使用JavaScript來和瀏覽器以及內容之間進行幾乎所有方面的互動(例如:獲取window物件、innerHTML內容、各種節點等操作),它已經成為一門功能全面的程式語言。

JavaScript作者

說起JavaScript的作者,就是一個很傳奇的人物了。他的名字叫Brendan Eich(布蘭登·艾奇),上一張照片膜拜大神~

JavaScript和它父親的故事
標準的程式設計師的樣子呢 罒ω罒

大神就職於Netscape公司,公司希望釋出一種名為LiveScript指令碼語言來處理上面說到的表單的問題(為什麼不是JavaScript呢~繼續往下看)。 因為時間比較趕所以Netscape和Sun公司就合作建立了一個聯盟。 這時候就不得誇一誇他們的推廣策略了

蹭熱度!!

這個詞對於我們現在應該是一個很熟悉的詞,經常看到某個明星蹭熱度。但是這裡可不是某個明星,而是大名鼎鼎的後端語言Java。 Java是由Sun公司開發的技術,而Netscape公司的管理層又都是很喜歡Java的,當時的Java還是熱度很高的,於是經過多方考量,最終將LiveScript更改為JavaScript。

此處不得不來一波小擴充套件~

Brendan Eich當時是34歲哦,所以大家在學習前端的時候,不要總是擔心~哎呀,我會不會年紀太大了,三十幾歲還適合做前端麼?考慮這些不如好好考慮一下防脫髮技巧。≖‿≖✧

大神本人的主要發展方向是函數語言程式設計,Netscape公司在招聘他的時候,是希望研究Scheme語言作為網頁尾本語言的可能性,進公司以後的大神也以為以後會和Scheme語言打交道,但是真香定律怎麼會放過他呢!

一個月之後,Netscape公司做出了最終的決策:未來的網頁尾本語言必須"看上去與Java足夠相似",但是要比Java簡單,而大神就是這個“簡化版Java”的設計師。

但是大神本人對於Java其實一點興趣也沒有。為了應付公司的安排(大神式敷衍 o‿≖),他用了10天的時間就把JavaScript設計出來了。

大神不愧是大神!僅僅用了10天時間,就設計完了。不過這樣短時間的敷衍設計也造成了很多的問題,語言的細節考慮的並不夠嚴謹,導致後來很長一段時間JavaScript寫的程式混亂不堪。

此次設計中借鑑了:

  • C語言的基本語法
  • Java語言的資料型別和記憶體管理
  • Scheme語言,將函式提升到"第一等公民"(first class)的地位
  • Self語言,使用基於原型(prototype)的繼承機制

我想如果不是Netscape公司最終決定出一個“簡化版Java”,可能我們現在學習的JavaScript又是另外一種樣子吧~

痛苦不堪的歲月

在JavaScript誕生之後,受到了很多人的關注,畢竟在當時這樣明顯的使用者體驗的提升還是很受到大家歡迎的~

好的創新大家都會喜歡,於是微軟就在自己家的產品IE中同樣加入了JavaScript,不過和Netscape公司的不一樣,他們的是JScript。於是乎,當時的程式設計師就不得不面臨一個問題:相容!相信大家都很討厭相容這個東西,面試的時候如果遇到面試官說:“你需要相容IE8以下”,我想很多小夥伴可能扭頭就走。

因為沒有規則及約定,兩邊開發的功能及命名都有自己的特色,相容起來相當的麻煩,業界擔心度日益加劇,JavaScript的標準化被提上了議事日程。

1997年,以JavaScript 1.1 為藍本的建議提交給了歐洲計算機協會商協會,協會指定39號技術委員會負責“把JavaScript標準化,要通用,並且可以跨平臺使用”,這個39號委員會的成員來自Netscape、Sun、微軟及其他關注指令碼語言的公司,經過數月完成了ECMA-262——定義一種名為ECMAScript的新指令碼語言標準(針對JavaScript的語法、語義等進行約束制定出來的標準)。

自此以後,瀏覽器開發商就致力於將ECMAScript作為各自JavaScript實現的基礎,從而解決了上面混亂不堪的相容問題,才有了我們現在見到的JavaScript。

JavaScript和它父親的故事

這就是JavaScript的誕生,下一期我會給大家講一下JavaScript中的三個核心部分喲~,感興趣的話記得要關注我哦✿◡‿◡ ~

最後我們在來看下,學習JavaScript找工作到底可以得到什麼樣的回報,上圖~

JavaScript和它父親的故事
如果你下定決心走在前端的路上,作為一個老程式設計師,我有一些忠告 (●’◡’●)ノ

JavaScript和它父親的故事

那麼下面的?,有可能以後你會有需要的哦 o‿≖✧

JavaScript和它父親的故事
如果大家喜歡紅寶書這個系列的分享,或想了解更多的JS相關小趣聞,可以評論下方留言交流討論哦~

JavaScript和它父親的故事

訂閱號ID:Miaovclass

關注妙味訂閱號:“妙味前端”,為您帶來優質前端技術乾貨;

相關文章