回顧 JS 歷史
背景:1995年 那個(gè)時(shí)候有一家科技公司叫網(wǎng)景公司(Netscape), 但是后來(lái)和微軟競(jìng)爭(zhēng)輸了,被別人收購(gòu)了 . 但是在1995年他們家的瀏覽器可是占有率第一的 . 那時(shí)候的瀏覽器只能瀏覽網(wǎng)頁(yè) , 一點(diǎn)交互都沒(méi)有 , 而且網(wǎng)景公司的軟件都是付費(fèi)的 , 所以肯定要登錄才能使用,當(dāng)時(shí)是用戶(hù)輸入 , 然后發(fā)送到服務(wù)器判斷 . 瀏覽器是不知道用戶(hù)到底有沒(méi)有輸入 . 總之就是給服務(wù)器發(fā)送用戶(hù)的賬號(hào)信息.網(wǎng)景公司急需一種網(wǎng)頁(yè)腳本語(yǔ)言则奥,使得瀏覽器可以與網(wǎng)頁(yè)互動(dòng)迄埃。"
javascript的誕生
javascript這個(gè)名字的來(lái)源,當(dāng)時(shí)的java被認(rèn)為是未來(lái)的趨勢(shì),網(wǎng)景公司和sun公司是又合作,然后又想迅速推廣這門(mén)新語(yǔ)言,想搭上java這個(gè)順風(fēng)車(chē),并且當(dāng)時(shí)網(wǎng)景公司的整個(gè)管理層,都是Java語(yǔ)言的信徒 然后就取名為 JavaScript.
1995年 網(wǎng)景公司招聘了 Brendan Eich 當(dāng)時(shí)34歲,現(xiàn)在58歲
這個(gè)人可是學(xué)富五車(chē),精通各種語(yǔ)言. 當(dāng)時(shí)網(wǎng)景公司要求未來(lái)的網(wǎng)頁(yè)腳本語(yǔ)言必須"看上去與Java足夠相似"妄均,但是比Java簡(jiǎn)單,使得非專(zhuān)業(yè)的網(wǎng)頁(yè)作者也能很快上手,但是撤摸,他對(duì)Java一點(diǎn)興趣也沒(méi)有徽千。為了應(yīng)付公司安排的任務(wù),他只用10天時(shí)間就把Javascript設(shè)計(jì)出來(lái)了珍手。
由于設(shè)計(jì)時(shí)間太短办铡,語(yǔ)言的一些細(xì)節(jié)考慮得不夠嚴(yán)謹(jǐn),導(dǎo)致后來(lái)很長(zhǎng)一段時(shí)間琳要,Javascript寫(xiě)出來(lái)的程序混亂不堪, 所以出現(xiàn)js的怪異行為.
總的來(lái)說(shuō)寡具,他的設(shè)計(jì)思路是這樣的:
(1)借鑒C語(yǔ)言的基本語(yǔ)法;
如果你學(xué)過(guò)C,你會(huì)發(fā)現(xiàn)JS基礎(chǔ)語(yǔ)法基本可以無(wú)縫對(duì)接,但是還是有些小區(qū)別.
(2)借鑒Java語(yǔ)言的數(shù)據(jù)類(lèi)型和內(nèi)存管理稚补;
(3)借鑒Scheme語(yǔ)言童叠,將函數(shù)提升到"第一等公民"(first class)的地位;
當(dāng)js預(yù)解析的時(shí)候變量會(huì)提升,但是函數(shù)比一般的變量?jī)?yōu)先級(jí)要高
(4)借鑒Self語(yǔ)言课幕,使用基于原型(prototype)的繼承機(jī)制厦坛。
ECMAScript 和 JavaScript 的關(guān)系
1996 年 11 月,JavaScript 的創(chuàng)造者 網(wǎng)景(Netscape) 公司乍惊,決定將 JavaScript 提交給國(guó)際標(biāo)準(zhǔn)化組織 ECMA杜秸,希望這 種語(yǔ)言能夠成為國(guó)際標(biāo)準(zhǔn)。
ECMA(European Computer Manufactures Association)歐洲計(jì)算機(jī)制造商協(xié)會(huì)润绎。
因此,ECMAScript 和 JavaScript 的關(guān)系是撬碟,前者是后者的規(guī)范或者標(biāo)準(zhǔn)诞挨,后者是前者的一種實(shí)現(xiàn)
ECMAScript 的歷史
ECMA規(guī)范最終由TC39敲定。TC39由包括瀏覽器廠(chǎng)商在內(nèi)的各方組成小作,他們開(kāi)會(huì)推動(dòng)JavaScript提案沿著一條嚴(yán)格的發(fā)展道路前進(jìn)亭姥。 從提案到入選ECMA規(guī)范主要有以下幾個(gè)階段:
Stage 0: strawman——最初想法的提交。
Stage 1: proposal(提案)——由TC39至少一名成員倡導(dǎo)的正式提案文件顾稀,該文件包括API事例达罗。
Stage 2: draft(草案)——功能規(guī)范的初始版本,該版本包含功能規(guī)范的兩個(gè)實(shí)驗(yàn)實(shí)現(xiàn)静秆。
Stage 3: candidate(候選)——提案規(guī)范通過(guò)審查并從廠(chǎng)商那里收集反饋
-
Stage 4: finished(完成)——提案準(zhǔn)備加入ECMAScript粮揉,但是到瀏覽器或者Nodejs中可能需要更長(zhǎng)的時(shí)間。
1997年 ECMAScript1.0 發(fā)布.
1998年6月 ECMAScript2.0 發(fā)布.
1999年12月 ECMAScript3.0 發(fā)布,3.0的語(yǔ)法是比較成功的,所以奠定了Js得基本語(yǔ)法. ECMAScript4.0 在2007年10月并沒(méi)有通過(guò)審核,因?yàn)檎Z(yǔ)法大部分太過(guò)于激進(jìn),只有小部分通過(guò)審核, 所以只發(fā)布了ECMASript3.1,不久后,就改名為ECMAScript5.0,
2009年12月ESMAScript5.0正式發(fā)布,需要補(bǔ)充的是ES5,ES6其實(shí)大部分是ES4太過(guò)于激進(jìn)的語(yǔ)法放在后面推出.
2011年6月 ECMAScript5.1,版本發(fā)布,并成為ISO國(guó)際標(biāo)準(zhǔn)
2015年 6月 ECMAScript6正式發(fā)布, 也成為ISO國(guó)際標(biāo)準(zhǔn),ES6是一個(gè)大版本,以后的每一個(gè)版本都不會(huì)出現(xiàn)這么多得新屬性新方法,可以看出以后的JS正在往TypeScript方向發(fā)展.
2016年3月 ECMAScript7正式發(fā)布
2017年6月 ECMAScript8正式發(fā)布
2018年6月 ECMAScript9正式發(fā)布
2019年6月 ECMAScript10正式發(fā)布
TypeScript
TypeScript是一種由微軟開(kāi)發(fā)的自由和開(kāi)源的編程語(yǔ)言抚笔。它是JavaScript的一個(gè)超集扶认,而且本質(zhì)上向這個(gè)語(yǔ)言添加了可選的靜態(tài)類(lèi)型和基于類(lèi)的面向?qū)ο缶幊?/strong>。[安德斯·海爾斯伯格, C#的首席架構(gòu)師殊橙,已工作于TypeScript的開(kāi)發(fā)辐宾。2012年十月份,微軟發(fā)布了首個(gè)公開(kāi)版本的TypeScript膨蛮,2013年6月19日叠纹,在經(jīng)歷了一個(gè)預(yù)覽版之后微軟正式發(fā)布了正式版TypeScript 0.9,向未來(lái)的TypeScript 1.0版邁進(jìn)了很大一步敞葛。來(lái)自百度百科.
其實(shí)我覺(jué)得算是一種有嚴(yán)格類(lèi)型要求的javascript,它是可以編譯成JS的即使在TS上面報(bào)錯(cuò)兼容任何瀏覽器,
CoffeeScript
當(dāng)時(shí)ECMAScript4.0的新語(yǔ)法太過(guò)于激進(jìn),沒(méi)有通過(guò)TC39審核,但是這些過(guò)于激進(jìn)的語(yǔ)法卻在coffeeScript中得到的體現(xiàn), 我們能夠更加優(yōu)美地編寫(xiě)JS代碼. 何謂優(yōu)美誉察,我認(rèn)為就是能夠以最少代碼量去實(shí)現(xiàn)傳統(tǒng)JavaScript的操作并且是可使用又易懂的.CoffeeScript還增加了許多語(yǔ)法糖比如class,extends等等(當(dāng)然在ES6也增加了惹谐,只是CoffeeScript是在ES6之前出現(xiàn)的),就是說(shuō)它在側(cè)面的影響著JS.
建議: 沒(méi)有系統(tǒng)學(xué)習(xí)過(guò) JavaScript沒(méi)有必要學(xué)習(xí)它們( TypeScript Coffeescript).
總之JavaScript TypeScript Coffeescript之間的關(guān)系是:JavaScript 主力,TypeScript以及Coffeescript是輔助.
https://www.cnblogs.com/ranzige/p/4128434.html
我覺(jué)得這篇文章寫(xiě)得挺好的.個(gè)人喜好吧.你想你的代碼寫(xiě)起來(lái)嚴(yán)謹(jǐn)一下,那毫無(wú)疑問(wèn)是TypeScript ,但是我比較喜歡自由一些,我寫(xiě)不出完全沒(méi)有bug的代碼,我覺(jué)得使用的TypeScript會(huì)使我像困住的小鳥(niǎo)一樣.
(完)
歡迎關(guān)注我的微信公眾號(hào):郭教練的Web世界
歡迎關(guān)注我的github倉(cāng)庫(kù):https://github.com/aatoe/-/blob/master/8月