正式進(jìn)入內(nèi)容部分了(翻譯起來(lái)有點(diǎn)艱難媒至,爭(zhēng)取加快進(jìn)度)
1.Scope
這個(gè)規(guī)范定義了ECMAScript2016 通用編程語(yǔ)言
2.conformance(一致性)
ECMAScript的一致性實(shí)現(xiàn)必須提供支持本規(guī)范中描述的所有類(lèi)型糟秘,值,對(duì)象挂捅,原型,函數(shù)和程序的語(yǔ)法語(yǔ)義缩歪。
ECMAScript的一致性實(shí)現(xiàn)必須能理解Unicode V8.0.0或更高標(biāo)準(zhǔn)和ISO/IEC 10646所編碼的源文件榴芳。
ECMAScript的一致性實(shí)現(xiàn)必須提供一個(gè)適應(yīng)最新版本ECMA-402定義的, 支持持編程的程序運(yùn)行接口
EMCAScript的一致性實(shí)現(xiàn)需要提供在本聲明描述之外的額外類(lèi)型裳朋,值病线,對(duì)象,原型和函數(shù)。尤其是一致性必須實(shí)現(xiàn)本聲明中沒(méi)有描述到的原型送挑,為這些原型實(shí)現(xiàn)的值绑莺,以及本聲明中描述的對(duì)象。
EMCAScript的一致性實(shí)現(xiàn)也許支持本聲明中沒(méi)有描述的程序和正則表達(dá)式惕耕。特別是本一致性實(shí)現(xiàn)也會(huì)會(huì)對(duì)未來(lái)可能用上的“future reserved words”提供程序支持
3.會(huì)用到的規(guī)范標(biāo)準(zhǔn)
這個(gè)部分主要是IOS標(biāo)準(zhǔn)纺裁,EMCA402接口標(biāo)準(zhǔn),EMCA404Json標(biāo)準(zhǔn)
4. 概覽
本章節(jié)是一個(gè)對(duì)ECMAScript(后面都用Js了 打完整的太麻煩了)程序不規(guī)范的概覽司澎。
Js是一個(gè)在宿主環(huán)境中執(zhí)行計(jì)算和操作計(jì)算對(duì)象的面向?qū)ο蟮某绦蛘Z(yǔ)言对扶。這里定義的Js并沒(méi)有打算做成計(jì)算上自足;事實(shí)上惭缰,本聲明中沒(méi)有規(guī)定任何額外數(shù)據(jù)的輸入或者計(jì)算結(jié)果的輸出浪南。反而是期望一個(gè)Js程序的計(jì)算環(huán)境不只是能提供對(duì)象和其他本生命中描述的工具還能確定的環(huán)境規(guī)格對(duì)象,除開(kāi)表明他提供確定的可使用的原型和可以被一個(gè)Js程序調(diào)用的函數(shù)漱受,該對(duì)象的描述和行為超過(guò)本聲明的范圍络凿。
Js原來(lái)被設(shè)計(jì)成以腳本語(yǔ)言的方式被使用,但已經(jīng)成為一個(gè)廣泛使用的常規(guī)通用編程語(yǔ)言昂羡。腳本語(yǔ)言是一種用于特定系統(tǒng)中的用于控制絮记,自定義,自動(dòng)化現(xiàn)有設(shè)施的編程語(yǔ)言虐先。在該系統(tǒng)下怨愤,有用的功能已經(jīng)通過(guò)一個(gè)用戶界面具有可行性,而腳本語(yǔ)言是一個(gè)把功能暴露給程序控制的機(jī)制蛹批。在這個(gè)方式下撰洗,腳本語(yǔ)言刻意可以為被專(zhuān)業(yè)和非專(zhuān)業(yè)程序員使用。
Js最開(kāi)始被設(shè)計(jì)為一個(gè)網(wǎng)絡(luò)腳本語(yǔ)言腐芍,為瀏覽器中的網(wǎng)頁(yè)的活動(dòng)提供原理差导,并執(zhí)行作為基于網(wǎng)絡(luò)的C/S架構(gòu)的一部分執(zhí)行服務(wù)器計(jì)算。Js現(xiàn)在被用來(lái)為大量宿主環(huán)境提供和性腳本功能猪勇。但是區(qū)別于任何具體宿主環(huán)境设褐,核心語(yǔ)言是本文檔特指的。
Js的用途已經(jīng)不只是單純的腳本泣刹,現(xiàn)再不同的環(huán)境和規(guī)模中被用來(lái)完成所有變成任務(wù)助析。隨著Js功能的擴(kuò)張,它提供的特性和工具也隨之?dāng)U張椅您。Js現(xiàn)在已經(jīng)是一個(gè)完整的標(biāo)準(zhǔn)編程語(yǔ)言外冀。
有些Js的特性和以下其他幾個(gè)編程語(yǔ)言相似,特別是以下幾個(gè)標(biāo)準(zhǔn)描述的 java c等等襟沮。后面是標(biāo)準(zhǔn)名我就不描述了锥惋。
主要是對(duì)ECMAScript做了一些總結(jié)吧昌腰。有些語(yǔ)句可以理解意思但是翻譯不出來(lái)。比較重要的強(qiáng)調(diào)就是把js定義未來(lái)面向?qū)ο蟮某绦蛘Z(yǔ)言膀跌,然后描述一下js的發(fā)展遭商。從瀏覽器語(yǔ)言發(fā)展到全系語(yǔ)言。
4.1網(wǎng)絡(luò)編程
一個(gè)網(wǎng)絡(luò)瀏覽器提供一個(gè)Js需要的宿主環(huán)境捅伤,包括代表窗口的對(duì)象劫流,菜單,彈窗丛忆,對(duì)話窗祠汇,輸入塊,錨點(diǎn)熄诡,框架可很,歷史,cookies凰浮,和輸入輸出我抠。此外,宿主環(huán)境還需要提供能觸及運(yùn)行代碼到事件上的工具袜茧,比如說(shuō)改變聚焦菜拓,頁(yè)面和圖片的載入和未載入,錯(cuò)誤和終止笛厦,選擇器纳鼎,表單提交,鼠標(biāo)事件裳凸。HTML和展示頁(yè)面中呈現(xiàn)的腳本代碼時(shí)用戶界面元素和計(jì)算后的文本圖片的結(jié)合贱鄙。腳本代碼在用戶有交互操作之后就可以重現(xiàn),這里(運(yùn)行這些)并不需要一個(gè)主程序登舞。
一個(gè)網(wǎng)絡(luò)服務(wù)器為服務(wù)器端的計(jì)算提供不同的宿主環(huán)境贰逾,這些計(jì)算一般包括表現(xiàn)請(qǐng)求悬荣,客戶端和文件菠秒,以及鎖定或者分享數(shù)據(jù)的結(jié)構(gòu)。把瀏覽器和服務(wù)器兩邊的腳本運(yùn)行使用在一起氯迂,是有可能為一個(gè)基于網(wǎng)絡(luò)的應(yīng)用程序提供定制化的用戶界面践叠。
涉及的包括講解了一下網(wǎng)絡(luò)編程的時(shí)候,c端和s端需要提供不同的環(huán)境并將其連接器起來(lái)嚼蚀。構(gòu)成一個(gè)特別的網(wǎng)絡(luò)編程禁灼。
4.2ECMAScript 概覽
以下是一個(gè)非正式的ECMAScript概覽-----并不包含語(yǔ)言的所有部分。這個(gè)概覽也不是標(biāo)準(zhǔn)本身的一部分轿曙。
Js是基于原型的弄捕,基礎(chǔ)語(yǔ)言和環(huán)境特性都由對(duì)象構(gòu)成僻孝,而一個(gè)Js程序是一系列交互對(duì)象的集群。在Js中守谓,一個(gè)對(duì)象是零個(gè)或者更多原型穿铆,每個(gè)原型都帶有屬性定義么個(gè)原型可以如何被使用。比如說(shuō)斋荞,當(dāng)一個(gè)原型的“是否可寫(xiě)”屬性被設(shè)置成了“否”荞雏,任何試圖通過(guò)運(yùn)行Js代碼而指定這個(gè)屬性的為另一個(gè)不同的值的行為都會(huì)被否決。原型是用來(lái)包括其他對(duì)象平酿,原始值凤优,函數(shù)的容器。一個(gè)原始值是一系列內(nèi)建類(lèi):undefined,Null,Boolean,Number,String和Symbol蜈彼;一個(gè)對(duì)象是一些內(nèi)建對(duì)象的集合筑辨;一個(gè)函數(shù)式一個(gè)可調(diào)用對(duì)象。一個(gè)函數(shù)是一個(gè)一定有一個(gè)屬性叫做method的對(duì)象幸逆。
這個(gè)算是個(gè)重點(diǎn)吧挖垛,主要詳細(xì)講述了js中幾乎所有對(duì)象的分類(lèi)。
Js定義了一系列內(nèi)建對(duì)象秉颗,這些組成了Js本質(zhì)的定義痢毒。這些內(nèi)建對(duì)象包括全局對(duì)象,作為語(yǔ)言運(yùn)行時(shí)語(yǔ)義的基本原理的包括Object蚕甥,F(xiàn)unction哪替,Boolean,Symbol的對(duì)象菇怀,Error對(duì)象凭舶,代表數(shù)值計(jì)算類(lèi)型的對(duì)象如Math,Number爱沟,Date帅霜,文本處理對(duì)象String and RegExp。處理一些列值的集合的對(duì)象Array和九種每個(gè)自己元素都有特別數(shù)值定義的不同類(lèi)型數(shù)組呼伸。鍵值集合包括Map和Set對(duì)象身冀。支持結(jié)構(gòu)數(shù)據(jù)的Json對(duì)象,ArrayBuffer對(duì)象括享,DataView對(duì)象,支持控制抽象的對(duì)象搂根,Prromise對(duì)象,和映射對(duì)象包括Proxy和Reflect铃辖。
Js還定義了內(nèi)建操作剩愧。Js操作包括一些列一元操作,乘法運(yùn)算符娇斩,加法運(yùn)算符仁卷,位變化運(yùn)算符穴翩,關(guān)系運(yùn)算符,二進(jìn)制路基運(yùn)算符锦积,二進(jìn)制位運(yùn)算符藏否,賦值運(yùn)算符,和逗號(hào)運(yùn)算符充包。
大型Js程序由模塊支持副签,模塊可以讓一個(gè)程序被分解成若干個(gè)聲明的多重序列。每個(gè)模塊明確的標(biāo)示由其他模塊提供的用到的聲明基矮,這些其他模塊中的聲明需要能被另外的模塊使用淆储。
Js語(yǔ)法可以的模仿Java的語(yǔ)法。Js語(yǔ)法是自由家浇,這讓它變成非常容易使用 的腳本語(yǔ)言本砰。比如說(shuō),一個(gè)變量并不需要確定類(lèi)型钢悲,也不需要確定類(lèi)型的原型点额,定義函數(shù)也不需要在調(diào)用他們之前有顯示聲明。
后面幾個(gè)關(guān)于操作莺琳,模塊还棱,語(yǔ)法的部分,只是簡(jiǎn)單的講了一下惭等。并沒(méi)有詳細(xì)的介紹珍手。介紹部分在后面更詳細(xì)的分類(lèi)部分。