版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、JavaScript的新技術(shù)特性介紹技術(shù)創(chuàng)新,變革未來2/192Slide199823/192SlideIE 434/192Slide個寫了20+年JS的男4Slide前ES3時代 19951999ES3時代 20002010Harmony時代 20082016后ES6時代 20162020TS/JS態(tài)新時代 20205/19256/192Slide36075team67/192Slide360級前端架構(gòu)師360技術(shù)委員會Web前端TC委員78/192Slide2019年7起TC39代表89/192SlideECMA9SlideECMA-334 C# Language SpecicationE
2、CMA-335 Common Language Infrastructure (CLI)ECMA-367 Eiel programming Language ECMA-376 Oce Open XML (ISO/IEC 29500)ECMA-388 Open XML Paper SpecicationECMA-408 Dart language specicationECMA-410 NFC-SEC Entity Authentication and Key Agreement using Asymmetric CryptographyECMA-411 NFC-SEC Entity Authe
3、ntication and Key Agreement using Symmetric Cryptography10/1921011/192SlideChina IWNCOMM電捷通2014-62018-6?11SlideECMA-262 ECMAScript Language Specication ECMA-357 ECMAScript for XML (E4X) (廢棄)ECMA-402 ECMAScript Internationalization API ECMA-404 JSON12/1921213/192SlideJavaScriptECMAScript1314/192Slide
4、JavaScriptECMAScript1415/192SlideTC3915SlideGoogle AppleMozilla Microsoft Facebook16/19216SlideIBMIntelPaypal Stripe17/19217Slide360AirbnbBloomberg GoDaddy Salesforce18/19218SlideEvernote IgaliaMeteor npmOpenJS Foundation19/1921920/192Slide建渠道2021/192Slide聊聊JS的個新特性2122/192Slide已完成的提案2223/192Slide每年6
5、-8個提案2324/192SlideES2020前5個24SlideStotype.matchAll import()BigInt Promise.allSettled globalThis25/1922526/192SlideStage 326SlideNullish Coalescing Optional ChainingStotype.replaceAll ?27/19228/192SlideNullish Coalescing Operators2829/192Slide?2930/192Slidea ? b3031/192Slidea != undefined& a
6、 != null? a : b3132/192Slidea != null ? a : b32Slidea ? a : b a | b33/1923334/192Slidetruthy/falsy34Slidestring: | vboolean: false | vnubmer: 0 | v number: NaN | v Array: | vObject: (35/192valueOf() return0 ) | v3536/192Slidenullish36Slidea != null ? a : b37/19237Slidea.b.c() ? va.b.c.d ? v38/19238S
7、lidea.b.c() != null ? a.b.c() : va.b.c.d != null ? a.b.c.d : v39/1923940/192SlideSide eects40SlideOAOO DRY41/19241Slideeval Once And Only Once Dont Repeat Yourself42/1924243/192Slidea != null ? a : ba != undefined & a != null ? a : b4344/192Slidedocument.all4445/192SlideTypeScript4546/192Slidea ? ba
8、 必須是 nullish46SlideT|undefinedT|nullT | null | undefined47/19247Slidea ? b | c a | b ? c a ca c?b&b ?48/1924849/192SlideSyntaxError4950/192Slide必須加括號5051/192Slide未決問題優(yōu)先級51Slide等于 ?: GNU C、Groovy(?:)于 | C#、PHP、Dart、Coee等 于 | Perl(/)于 =:Swift、Kotlin52/1925253/192Slidev ? complex_expression5354/192Slid
9、ecomplex_expression ? v54Slidea = b ? c (a = b) ? ca = (b ? c)55/19255Slidea * b ? c (a * b) ? ca * (b ? c)56/1925657/192SlideOperator precedence5758/192SlideTypeScript5859/192Slidea ? ba 必須是 nullish5960/192Slide(a OP b) ? c定都是錯誤代碼6061/192Slidea OP b ? c定都是錯誤代碼6162/192Slidea OP(b ? c)6263/192Slidea
10、? b OP c理解上存在歧義63Slide(a *OP* b) ? (c *OP* da OP b ? c OP d怎樣動x?)a OP (b ? c OP d)a OP (b ? c) OP d64/1926465/192Slide于較運(yùn)算符:Swift、Kotlin6566/192Slide于*(所有元運(yùn)算符)6667/192Slidea OP b ? c6768/192Slidea OP b ? c OP d6869/192Slidea ? b OP c6970/192Slide較保守的團(tuán)隊(duì)可以定制lint規(guī)則7071/192Slide相對簡單的lint規(guī)則只禁 a ? b OP ca
11、 ? b 或 者 a ? (b OP c)71Slide現(xiàn)在可能需要lint規(guī)則a OP b ? ca ? b OP ca OP b ? c OPd72/19272Slide優(yōu)先級7373/19274/192Slide#157475/192SlideOptional Chaining7576/192Slidea?.b7677/192Slidea != undened & a != null ? a.b : undened7778/192Slidea != null ? a.b : undened7879/192SlideNullish-aware Operators7980/192Slidea
12、 != null ? a.b : undened8081/192Slidea & a.b8182/192Slidetruthy/falsynullish8283/192Slidea & a.b & a.b.c8384/192SlideSide eects84SlideOAOO DRY85/1928586/192Slidedocument.all8687/192SlideTypeScript8788/192Slidea?.ba 必須是 nullish88Slidea?.b.ca?.b?.c89/1928990/192SlideShort-circuiting9091/192Slidea?.+x9
13、192/192Slidea = null ? undened : a+x9293/192Slidea?.b.c(+x).da = null ? undened : a.b.c(+x).d9394/192SlideLong short-circuiting94Slidea?.b.c (a?.b).c95/19295Slidea = null ? undefined : a.b.c (a = null ? undefined : a.b).c96/19296Slidea?.b.c.d a?.b?.c?.d97/1929798/192SlideTypeScript靜態(tài)類型檢查 可以嚴(yán)格地確定每個部分
14、 應(yīng)該a.b還是a?.b9899/192Slidea?.b.c?.d99Slidea?.ba!.b100/192100101/192SlideNon-null assertion101102/192Slidea!102SlideconstH=constK=console口.codePointAt(0).toString(16)口.codePointAt(2).toString(16).log(H, K)103/192103SlideconstH=constKconsole口.codePointAt(0)!.toString(16)口.codePointAt(2)!.toString(16).l
15、og(H, K)104/192104SlideconstH=constKconsole口.codePointAt(0)?.toString(16)口.codePointAt(2)?.toString(16).log(H, K)105/192105Slideconst lang = localStorage.getItem(lang) ? en-US const labels = i18n.load(lang)const user = JSON.parse(localStorage.getItem(user) document.querySelector(bdi#user-name)!.text
16、Content =user?.name ? labels?.non-login-user-name ? anonymous106/192106Slidea?.b a?.key107/192107108/192Slidea . b - a key a ?. b - a ? key 108Slidea?ba?b:c109/192109110/192Slidea?b?c:d110111/192Slide其他語?111112/192SlideC#:數(shù)組是 .112113/192SlideCoeeScript:沒有 ?: 三元113114/192SlideSwift:空格區(qū)分!114115/192Sli
17、detry a?.b?c115Slidea?.b a?.prop a?.(.args)116/192116117/192Slidea != null ? a(.args) : undened117Slidea?(.)a?.(.)118118/192119/192SlideC#:a?.invoke(.)119Slidea.b?.(.)a.b?.invoke(.)120/192120121/192SlideStage 2121Slidea?.ba?key a?(.args)122/192122Slidea?.ba?key a?(.args) a ? b123/192123Slidea?.b a?k
18、ey a?(.args) a ? ba?&b a?&key a?&(.args) a ? ba?b a?key a?(.args) a ? ba?.b a?key a?(.args) a ? ba.b akey a(.args) a b a?.b a?.key a?.(.args) a ? b124/192124125/192Slide主要use casea?.b 80%+a ? b125126/192Slidedelete a?.b126127/192Slidea = null? true: delete a.b127128/192Slide不持的128Slidenew?.target im
19、port?.(foo)new a?.()new a?.b()super?.()super?.foo a?.string a?.bstringa?.b = c129/192129130/192Slidea?.b = c130Slide/ syntax error document.querySelector(#test)?.innerHTML += .131/192131Slide/ okdocument.querySelector(#test)?.insertAdjacentHTML(beforeend, .)132/192132133/192Slide#18133134/192SlideQA
20、134135/192SlideStotype.replaceAll135Slideabaa.replace(a, A)/ Abaaabaa.replace(/a/, A)/ Abaa abaa.replace(/a/g, A) / AbAAabaa.replaceAll(a, A)/ AbAAabaa.replaceAll(/a/, A)/ Ab? abaa.replaceAll(/a/g, A) / AbAA136/192136SlideAbAA (auto g) Abaa (consistency?)throw TypeErrordo not allow RegExp at all (ch
21、ange API name to substitue)137/192137138/192SlideStotype.matchAll138Slideabaa.match(a)abaa.match(/a/)/ a, index: 0, input: abaa/ a, index: 0, input: abaaabaa.match(/a/g) / a, a, a139/192139Slideabaa.matchAll(a) / (a, index: 0, input: abaa)abaa.matchAll(/a/) / ?abaa.matchAll(/a/g) / (a, index: 0, a,
22、index: 2, a, index: 3)140/192140141/192SlideStage 4!141Slideabaa.replaceAll(/a/, A) / TypeError! abaa.matchAll(/a/)/ TypeError!142/192142143/192SlideglobalThis143Slidewindow selfglobal144/192144145/192SlideWhy globalThis145146/192Slideglobalhttps:/git/tc39/proposal-global146Slideif (typeof global = object) / code for node.js else / code for browser147/192147Slideself globalObjectglobe Global148/192148149/192SlideglobalThis149150/192Slide安慰下150151/192Slide只是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)項(xiàng)目管理顧問合同3篇
- 2025年度公司員工數(shù)字化轉(zhuǎn)型合伙協(xié)議2篇
- 2025年度電子商務(wù)平臺勞務(wù)合作合同
- 二零二五年度農(nóng)業(yè)勞務(wù)用工服務(wù)合同范本(含農(nóng)業(yè)綠色防控技術(shù))3篇
- 二零二五年度環(huán)保項(xiàng)目融資抵押合同3篇
- 二零二五年度農(nóng)村林地林業(yè)工程承包合同書
- 2025年度公司個人借款合同社會責(zé)任及可持續(xù)發(fā)展協(xié)議3篇
- 二零二五年度養(yǎng)老服務(wù)行業(yè)員工勞動合同范本3篇
- 2025年度農(nóng)村自建房拆除與重建一體化服務(wù)協(xié)議合同書
- 二零二五年度文化場館租賃及活動組織合同3篇
- 2024年廣東省廣州市黃埔區(qū)中考一模語文試題及答案
- 公路施工表格
- 飯?zhí)脪炜繀f(xié)議合同范本
- 2023-2024學(xué)年遼寧省重點(diǎn)高中沈陽市郊聯(lián)體高二上學(xué)期期末考試生物試題(解析版)
- 借款分期還款合同
- 醫(yī)學(xué)史第三版重點(diǎn)
- 2024版建行借款合同范本
- CQI-8分層過程審核指南(附全套表格)
- 教科版五年級上冊科學(xué)期末測試卷及參考答案(完整版)
- 江西省九江市一中2023-2024學(xué)年下學(xué)期八年級期中物理試卷
- 物理化學(xué)英語詞匯
評論
0/150
提交評論