自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

StateOfJS:2022年JavaScript生態(tài)圈趨勢(shì)報(bào)告

開(kāi)發(fā) 前端
JavaScript 發(fā)展很快,但似乎 JavaScript 開(kāi)發(fā)人員的發(fā)展速度更快,因?yàn)樵S多相對(duì)較新的功能已經(jīng)顯示出很高的采用率。

大家好,我是 CUGGZ。

2023 年 1 月 11 日,2022 年度 StateOfJS 調(diào)查結(jié)果正式公布!StateOfJS 是前端生態(tài)圈中比較有影響力的且規(guī)模較大的數(shù)據(jù)調(diào)查。本文就來(lái)解讀一下 2022 年 StateOfJS 的調(diào)查結(jié)果!

2022 年 JS 狀態(tài)調(diào)查于 2022 年 11 月 21 日至 12 月 22 日進(jìn)行,共收集了 39472 份問(wèn)卷。此調(diào)查的目的是確定 Web 開(kāi)發(fā)生態(tài)系統(tǒng)中即將出現(xiàn)的趨勢(shì),以幫助開(kāi)發(fā)人員做出技術(shù)選擇。因此,該調(diào)查的重點(diǎn)是預(yù)測(cè)未來(lái)幾年會(huì)發(fā)生什么,而不是分析現(xiàn)在流行什么,這就是為什么并不包括目前最普遍的功能或技術(shù)。

功能

JavaScript 發(fā)展很快,但似乎 JavaScript 開(kāi)發(fā)人員的發(fā)展速度更快,因?yàn)樵S多相對(duì)較新的功能已經(jīng)顯示出很高的采用率。

概述

這一部分包含語(yǔ)言、瀏覽器API、其他功能三部分。

外圈的大小對(duì)應(yīng)的是知道某個(gè)功能的用戶總數(shù)(知道+用過(guò)的受訪者),而內(nèi)圈代表實(shí)際使用過(guò)的用戶(用過(guò)的受訪者)。

圖片

在調(diào)查提到的所有功能中,受訪者的了解程度如下:

圖片

下面來(lái)詳細(xì)看看這些功能的用途以及受訪者對(duì)于這個(gè)功能的了解和使用情況!

語(yǔ)言

下面先來(lái)看看 JavaScript 內(nèi)置的功能。

(1)Proxy

Proxy 對(duì)象用于創(chuàng)建一個(gè)對(duì)象的代理,從而實(shí)現(xiàn)基本操作的攔截和自定義(如屬性查找、賦值、枚舉、函數(shù)調(diào)用等)。

受訪者對(duì) Proxy 的了解和使用情況如下:

圖片

(2)Promise.allSettled()

Promise.allSettled() 方法以 promise 組成的可迭代對(duì)象作為輸入,并且返回一個(gè) Promise 實(shí)例。當(dāng)輸入的所有 promise 都已敲定時(shí)(包括傳遞空的可迭代類型),返回的 promise 將兌現(xiàn),并帶有描述每個(gè) promsie 結(jié)果的對(duì)象數(shù)組。

受訪者對(duì) Promise.allSettled() 的了解和使用情況如下:

圖片

(3)動(dòng)態(tài) import()

靜態(tài)的 import 語(yǔ)句用于導(dǎo)入由另一個(gè)模塊導(dǎo)出的綁定。在瀏覽器中,import 語(yǔ)句只能在聲明了 type="module" 的 script 的標(biāo)簽中使用。而類似函數(shù)的動(dòng)態(tài) import() 不需要依賴 type="module" 的 script 標(biāo)簽。如果希望按照一定的條件或者按需加載模塊的時(shí)候,動(dòng)態(tài) import() 是非常有用的。

受訪者對(duì)動(dòng)態(tài) import() 的了解和使用情況如下:

(4)類私有域

類屬性在默認(rèn)情況下是公有的,但可以使用增加哈希前綴 # 的方法來(lái)定義私有類字段,這一隱秘封裝的類特性由 JavaScript 自身強(qiáng)制執(zhí)行。

受訪者對(duì)類私有域的了解和使用情況如下:

圖片

(5)空值合并運(yùn)算符(??)

空值合并運(yùn)算符(??)是一個(gè)邏輯運(yùn)算符,當(dāng)左側(cè)的操作數(shù)為 null 或者 undefined 時(shí),返回其右側(cè)操作數(shù),否則返回左側(cè)操作數(shù)。與邏輯或運(yùn)算符(||)不同,邏輯或運(yùn)算符會(huì)在左側(cè)操作數(shù)為假值時(shí)返回右側(cè)操作數(shù)。也就是說(shuō),如果使用 || 來(lái)為某些變量設(shè)置默認(rèn)值,可能會(huì)遇到意料之外的行為。比如為假值(例如,'' 或 0)時(shí)。

受訪者對(duì)空值合并運(yùn)算符(??) 的了解和使用情況如下:

圖片

(6)數(shù)字分隔符

為了提高數(shù)字的可讀性,可以使用下劃線 (_, U+005F) 作為分隔符:

1_000_000_000_000
1_050.95
0b1010_0001_1000_0101
0o2_2_5_6
0xA0_B0_C0
1_000_000_000_000_000_000_000n

受訪者對(duì)數(shù)字分隔符的了解和使用情況如下:

圖片

(7)String.prototype.replaceAll()

replaceAll() 方法返回一個(gè)新字符串,新字符串所有滿足 pattern 的部分都已被 replacement 替換。pattern可以是一個(gè)字符串或一個(gè) RegExp, replacement 可以是一個(gè)字符串或一個(gè)在每次匹配被調(diào)用的函數(shù),該方法不會(huì)改變?cè)甲址?/p>

受訪者對(duì) replaceAll() 的了解和使用情況如下:

圖片

(8)String.prototype.matchAll()

matchAll() 方法返回一個(gè)包含所有匹配正則表達(dá)式的結(jié)果及分組捕獲組的迭代器。

受訪者對(duì) matchAll() 的了解和使用情況如下:

圖片

(9)邏輯與賦值運(yùn)算符(&&=)

邏輯與賦值 (x &&= y) 運(yùn)算符僅在 x 為真時(shí)才賦值。

受訪者對(duì)邏輯與賦值運(yùn)算符的了解和使用情況如下:

圖片

(10)Promise.any()

Promise.any() 接收一個(gè)由 Promise 所組成的可迭代對(duì)象,該方法會(huì)返回一個(gè)新的 promise,一旦可迭代對(duì)象內(nèi)的任意一個(gè) promise 變成了兌現(xiàn)狀態(tài),那么由該方法所返回的 promise 就會(huì)變成兌現(xiàn)狀態(tài),并且它的兌現(xiàn)值就是可迭代對(duì)象內(nèi)的首先兌現(xiàn)的 promise 的兌現(xiàn)值。如果可迭代對(duì)象內(nèi)的 promise 最終都沒(méi)有兌現(xiàn)(即所有 promise 都被拒絕了),那么該方法所返回的 promise 就會(huì)變成拒絕狀態(tài),并且它的拒因會(huì)是一個(gè) AggregateError 實(shí)例,這是 Error 的子類,用于把單一的錯(cuò)誤集合在一起。

注意:Promise.any() 方法依然是實(shí)驗(yàn)性的,尚未被所有的瀏覽器完全支持。它當(dāng)前處于 TC39 第四階段草案(Stage 4)

受訪者對(duì) Promise.any() 的了解和使用情況如下:

圖片

(11)Array.prototype.at()

at() 方法接收一個(gè)整數(shù)值并返回該索引對(duì)應(yīng)的元素,允許正數(shù)和負(fù)數(shù)。負(fù)整數(shù)從數(shù)組中的最后一個(gè)元素開(kāi)始倒數(shù)。

受訪者對(duì) at() 的了解和使用情況如下:

圖片

(12)頂層 await

在模塊的頂層,可以單獨(dú)使用關(guān)鍵字 await(異步函數(shù)的外面)。也就是說(shuō)一個(gè)模塊如果包含用了 await 的子模塊,該模塊就會(huì)等待該子模塊,這一過(guò)程并不會(huì)阻塞其它子模塊。

受訪者對(duì)頂層 await 的了解和使用情況如下:

圖片

(13)Temporal

Temporal 為 ECMAScript 語(yǔ)言帶來(lái)了現(xiàn)代日期/時(shí)間 API。其具有以下特點(diǎn):

  • 為日期和時(shí)間計(jì)算提供易于使用的 API
  • 對(duì)所有時(shí)區(qū)的一流支持,包括 DST 安全算法
  • 只處理代表固定日期和時(shí)間的對(duì)象
  • 解析嚴(yán)格指定的字符串格式
  • 支持非公歷

受訪者對(duì) Temporal 的了解和使用情況如下:

圖片

(14)Array.prototype.findLast()

findLast() 方法返回?cái)?shù)組中滿足提供的測(cè)試函數(shù)條件的最后一個(gè)元素的值。如果沒(méi)有找到對(duì)應(yīng)元素,則返回 undefined。

受訪者對(duì) findLast() 的了解和使用情況如下:

圖片

(15)Error.prototype.cause

Error 實(shí)例的 cause 數(shù)據(jù)屬性用來(lái)指示錯(cuò)誤的具體原始原因。使用更具體或有用的錯(cuò)誤消息捕獲并重新拋出錯(cuò)誤時(shí)使用它,以便仍然可以訪問(wèn)原始錯(cuò)誤。

受訪者對(duì) Error.prototype.cause 的了解和使用情況如下:

圖片

(16)Object.hasOwn()

如果指定的對(duì)象自身有指定的屬性,則靜態(tài)方法 Object.hasOwn() 返回 true。如果屬性是繼承的或者不存在,該方法返回 false。Object.hasOwn() 旨在取代 Object.hasOwnProperty()。

受訪者對(duì) Object.hasOwn() 的了解和使用情況如下:

圖片

(17)正則表達(dá)式匹配索引

受訪者對(duì)正則表達(dá)式匹配索引的了解和使用情況如下:

圖片

瀏覽器 API

接下來(lái)看看瀏覽器提供的功能。

(1)Service Worker API

Service workers 本質(zhì)上充當(dāng) Web 應(yīng)用程序、瀏覽器與網(wǎng)絡(luò)(可用時(shí))之間的代理服務(wù)器。這個(gè) API 旨在創(chuàng)建有效的離線體驗(yàn),它會(huì)攔截網(wǎng)絡(luò)請(qǐng)求并根據(jù)網(wǎng)絡(luò)是否可用來(lái)采取適當(dāng)?shù)膭?dòng)作、更新來(lái)自服務(wù)器的的資源。它還提供入口以推送通知和訪問(wèn)后臺(tái)同步 API。

受訪者對(duì) Service Worker API 的了解和使用情況如下:

圖片

(2)Intl

Intl 對(duì)象是 ECMAScript 國(guó)際化 API 的一個(gè)命名空間,它提供了精確的字符串對(duì)比、數(shù)字格式化,和日期時(shí)間格式化。Collator,NumberFormat 和 DateTimeFormat 對(duì)象的構(gòu)造函數(shù)是 Intl 對(duì)象的屬性。

受訪者對(duì) Intl 的了解和使用情況如下:

圖片

(3)WebGL

WebGL 使得在支持 HTML 的 canvas 標(biāo)簽的瀏覽器中,不需要安裝任何插件,便可以使用基于 OpenGL ES 2.0 的 API 在 canvas 中進(jìn)行 2D 和 3D 渲染。WebGL 程序包括用 JavaScript 寫(xiě)的控制代碼,以及在圖形處理單元中執(zhí)行的著色代碼。WebGL 元素可以和其他 HTML 元素混合使用,并且可以和網(wǎng)頁(yè)其他部分或者網(wǎng)頁(yè)背景結(jié)合起來(lái)。

受訪者對(duì) WebGL 的了解和使用情況如下:

圖片

(4)Web Animations API

Web Animations API 將瀏覽器動(dòng)畫(huà)引擎向開(kāi)發(fā)者打開(kāi),并由 JavaScript 進(jìn)行操作。這些 API 被設(shè)計(jì)成 CSS Animations and CSS Transitions的接口,未來(lái)會(huì)對(duì)這些 API 做補(bǔ)充以豐富更多的功能。通過(guò) Web 動(dòng)畫(huà) API,我們可以將交互式動(dòng)畫(huà)從樣式表移動(dòng)到 JavaScript,將表現(xiàn)與行為分開(kāi)。

受訪者對(duì) Web Animations API 的了解和使用情況如下:

圖片

(5)WebRTC API

WebRTC 是一項(xiàng)實(shí)時(shí)通訊技術(shù),它允許網(wǎng)絡(luò)應(yīng)用或者站點(diǎn),在不借助中間媒介的情況下,建立瀏覽器之間點(diǎn)對(duì)點(diǎn)(Peer-to-Peer)的連接,實(shí)現(xiàn)視頻流和(或)音頻流或者其他任意數(shù)據(jù)的傳輸。WebRTC 包含的這些標(biāo)準(zhǔn)使用戶在無(wú)需安裝任何插件或者第三方的軟件的情況下,創(chuàng)建點(diǎn)對(duì)點(diǎn)(Peer-to-Peer)的數(shù)據(jù)分享和電話會(huì)議成為可能。

受訪者對(duì) WebRTC API 的了解和使用情況如下:

圖片

(6)Web Speech API

Web Speech API 能夠?qū)⒄Z(yǔ)音數(shù)據(jù)合并到 Web 應(yīng)用程序中。Web Speech API 有兩個(gè)部分:SpeechSynthesis 語(yǔ)音合成(文本到語(yǔ)音 TTS)和 SpeechRecognition 語(yǔ)音識(shí)別(異步語(yǔ)音識(shí)別)。

受訪者對(duì) Web Speech API 的了解和使用情況如下:

圖片

(7)WebSocket API

WebSockets 是一種先進(jìn)的技術(shù)。它可以在用戶的瀏覽器和服務(wù)器之間打開(kāi)交互式通信會(huì)話。使用此 API,可以向服務(wù)器發(fā)送消息并接收事件驅(qū)動(dòng)的響應(yīng),而無(wú)需通過(guò)輪詢服務(wù)器的方式以獲得響應(yīng)。

受訪者對(duì) WebSocket API 的了解和使用情況如下:

圖片

(8)Web Components

Web Components 是一套不同的技術(shù),用于創(chuàng)建可重用的定制元素(它們的功能封裝在代碼之外)并且在 web 應(yīng)用中使用它們。

受訪者對(duì) Web Components 的了解和使用情況如下:

圖片

(9)Shadow DOM

Web components 的一個(gè)重要屬性是封裝——可以將 HTML 結(jié)構(gòu)、樣式和行為隱藏起來(lái),并與頁(yè)面上的其他代碼相隔離,保證不同的部分不會(huì)混在一起,可使代碼更加干凈、整潔。其中,Shadow DOM 接口是關(guān)鍵所在,它可以將一個(gè)隱藏的、獨(dú)立的 DOM 附加到一個(gè)元素上。

受訪者對(duì) Shadow DOM 的了解和使用情況如下:

圖片

(10)頁(yè)面可見(jiàn)性 API

使用選項(xiàng)卡式瀏覽,任何給定網(wǎng)頁(yè)都有可能在后臺(tái),因此對(duì)用戶不可見(jiàn)。頁(yè)面可見(jiàn)性 API 提供了可以觀察的事件,以便了解文檔何時(shí)可見(jiàn)或隱藏,以及查看頁(yè)面當(dāng)前可見(jiàn)性狀態(tài)的功能。該 API 對(duì)于節(jié)省資源和提高性能特別有用,它使頁(yè)面在文檔不可見(jiàn)時(shí)避免執(zhí)行不必要的任務(wù)。

受訪者對(duì)頁(yè)面可見(jiàn)性 API 的了解和使用情況如下:

圖片

(11)Broadcast Channel API

Broadcast Channel API 可以實(shí)現(xiàn)同源下瀏覽器不同窗口,Tab 頁(yè),frame 或者 iframe 下的瀏覽器上下文 (通常是同一個(gè)網(wǎng)站下不同的頁(yè)面) 之間的簡(jiǎn)單通訊。

受訪者對(duì) Broadcast Channel API 的了解和使用情況如下:

圖片

(12)地理位置 API

地理位置 API(Geolocation API)允許用戶向 web 應(yīng)用程序提供他們的位置。出于隱私考慮,報(bào)告地理位置前會(huì)先請(qǐng)求用戶許可。

受訪者對(duì)地理位置 API 的了解和使用情況如下:

圖片

(13)文件系統(tǒng)訪問(wèn) API

文件系統(tǒng)訪問(wèn) API 用于讀取、寫(xiě)入和文件管理功能。此功能僅在安全上下文 (HTTPS) 中可用,在某些或所有支持的瀏覽器中可用。

受訪者對(duì)文件系統(tǒng)訪問(wèn) API 的了解和使用情況如下:

圖片

(14)Web Share API

Web Share API 提供了一種機(jī)制,用于將文本、鏈接、文件和其他內(nèi)容共享到用戶選擇的任意共享目標(biāo)。

受訪者對(duì) Web Share API 的了解和使用情況如下:

圖片

(15)WebXR Device API

WebXR 是一組支持將渲染 3D 場(chǎng)景用來(lái)呈現(xiàn)虛擬世界(虛擬現(xiàn)實(shí),也稱作 VR)或?qū)D形圖像添加到現(xiàn)實(shí)世界(增強(qiáng)現(xiàn)實(shí),也稱作 AR)的標(biāo)準(zhǔn)。WebXR Devic API 實(shí)現(xiàn)了 WebXR 功能集的核心,管理輸出設(shè)備的選擇,以適當(dāng)?shù)膸俾蕦?3D 場(chǎng)景呈現(xiàn)給所選設(shè)備,并管理使用輸入控制器創(chuàng)建的運(yùn)動(dòng)矢量。

受訪者對(duì) WebXR Device API 的了解和使用情況如下:

圖片

其他功能

(1)漸進(jìn)式 Web 應(yīng)用(PWA)

PWA(Progressive Web Apps,漸進(jìn)式 Web 應(yīng)用)運(yùn)用現(xiàn)代的 Web API 以及傳統(tǒng)的漸進(jìn)式增強(qiáng)策略來(lái)創(chuàng)建跨平臺(tái) Web 應(yīng)用。這些應(yīng)用無(wú)處不在、功能豐富,使其具有與原生應(yīng)用相同的用戶體驗(yàn)優(yōu)勢(shì)。

受訪者對(duì)漸進(jìn)式 Web 應(yīng)用(PWA)的了解和使用情況如下:

圖片

(2)WebAssembly

WebAssembly 是一種新的編碼方式,可以在現(xiàn)代的網(wǎng)絡(luò)瀏覽器中運(yùn)行 - 它是一種低級(jí)的類匯編語(yǔ)言,具有緊湊的二進(jìn)制格式,可以接近原生的性能運(yùn)行,并為諸如 C / C ++等語(yǔ)言提供一個(gè)編譯目標(biāo),以便它們可以在 Web 上運(yùn)行。它也被設(shè)計(jì)為可以與 JavaScript 共存,允許兩者一起工作。

受訪者對(duì) WebAssembly 的了解和使用情況如下:

圖片

庫(kù)

概述

以下每條線都是從 2016 年到 2020 年,點(diǎn)越高代表該技術(shù)被更多人使用,點(diǎn)越靠右代表越多的人想要學(xué)習(xí);或者已經(jīng)使用過(guò)并且會(huì)再次使用它。

圖片

下表是根據(jù)庫(kù)的保留率(將再次使用圖書(shū)館的用戶百分比)對(duì)庫(kù)進(jìn)行排名的結(jié)果:

圖片

前端框架

下面來(lái)看看隨著時(shí)間的推移,熱門 JavaScript 框架的保留率、興趣率、使用率和認(rèn)知率。

認(rèn)知度低于 10% 的技術(shù)不包括在內(nèi)。每個(gè)比率定義如下:

  • 保留率:會(huì)再次使用/(會(huì)再次使用+不會(huì)再次使用)
  • 興趣率:想學(xué)/(想學(xué)+沒(méi)興趣)
  • 使用率:(會(huì)再次使用+不會(huì)再次使用)/總計(jì)
  • 認(rèn)知率:(總計(jì) - 從未聽(tīng)說(shuō)過(guò))/總計(jì)

保留率如下,可以看到React和Vue的保留率都在逐年下降:

圖片

興趣率:

圖片

使用率如下,近四年前端框架的使用率趨于穩(wěn)定,其中 React 一直處于領(lǐng)先地位:

圖片

認(rèn)知率:

圖片

隨著時(shí)間的推移,受訪者對(duì)所調(diào)查技術(shù)的看法:

圖片

下表在中心軸的兩側(cè)劃分了正面(“想學(xué)習(xí)”、“會(huì)再次使用”)和負(fù)面(“不感興趣”、“不會(huì)再次使用”)體驗(yàn),其中條形粗細(xì)表示了解某項(xiàng)技術(shù)的受訪者數(shù)量:

圖片

用戶對(duì)其他前端框架的使用情況如下,可以看到,使用 JQuery 的用戶僅占受訪者的1.9%:

圖片

受訪者對(duì)前端框架現(xiàn)狀的滿意度如下:

圖片

渲染框架

下面來(lái)看看隨著時(shí)間的推移,熱門渲染框架的保留率、興趣率、使用率和認(rèn)知率。

保留率:

圖片

興趣率:

圖片

使用率:

圖片

認(rèn)知率:

圖片

隨著時(shí)間的推移,受訪者對(duì)所調(diào)查技術(shù)的看法:

圖片

下表在中心軸的兩側(cè)劃分了正面(“想學(xué)習(xí)”、“會(huì)再次使用”)和負(fù)面(“不感興趣”、“不會(huì)再次使用”)體驗(yàn),其中條形粗細(xì)表示了解某項(xiàng)技術(shù)的受訪者數(shù)量:

圖片

用戶對(duì)其他渲染框架的使用情況如下:

圖片

受訪者對(duì)渲染框架現(xiàn)狀的滿意度如下:

圖片

測(cè)試工具

下面來(lái)看看隨著時(shí)間的推移,熱門測(cè)試工具的保留率、興趣率、使用率和認(rèn)知率。

保留率:

圖片

興趣率:

圖片

使用率:

圖片

認(rèn)知率:

圖片

隨著時(shí)間的推移,受訪者對(duì)所調(diào)查技術(shù)的看法:

圖片

下表在中心軸的兩側(cè)劃分了正面(“想學(xué)習(xí)”、“會(huì)再次使用”)和負(fù)面(“不感興趣”、“不會(huì)再次使用”)體驗(yàn),其中條形粗細(xì)表示了解某項(xiàng)技術(shù)的受訪者數(shù)量:

圖片

用戶對(duì)其他測(cè)試工具的使用情況如下:

圖片

受訪者對(duì)測(cè)試工具現(xiàn)狀的滿意度如下:

圖片

移動(dòng)端&桌面端

下面來(lái)看看隨著時(shí)間的推移,熱門移動(dòng)端&桌面端框架/庫(kù)的保留率、興趣率、使用率和認(rèn)知率。

保留率:

圖片

興趣率:

圖片

使用率:

圖片

認(rèn)知率:

圖片

隨著時(shí)間的推移,受訪者對(duì)所調(diào)查技術(shù)的看法:

圖片

下表在中心軸的兩側(cè)劃分了正面(“想學(xué)習(xí)”、“會(huì)再次使用”)和負(fù)面(“不感興趣”、“不會(huì)再次使用”)體驗(yàn),其中條形粗細(xì)表示了解某項(xiàng)技術(shù)的受訪者數(shù)量:

圖片

用戶對(duì)其他移動(dòng)端&桌面端庫(kù)的使用情況如下:

圖片

受訪者對(duì)移動(dòng)端&桌面端框架/庫(kù)現(xiàn)狀的滿意度如下:

圖片

構(gòu)建工具

下面來(lái)看看隨著時(shí)間的推移,熱門構(gòu)建工具的保留率、興趣率、使用率和認(rèn)知率。

保留率如下,可以看到 webpack 的保留率在逐年下降,2022年只剩下不到70%,而V ite 的保留率接近100%:

圖片

興趣率:

圖片

使用率如下,雖然webpack的保留率在逐年下降,但仍是使用率最多的構(gòu)建工具。Vite 的使用率較去年有很大的提升,未來(lái)發(fā)展空間很大:

圖片

認(rèn)知率:

圖片

隨著時(shí)間的推移,受訪者對(duì)所調(diào)查技術(shù)的看法:

圖片

下表在中心軸的兩側(cè)劃分了正面(“想學(xué)習(xí)”、“會(huì)再次使用”)和負(fù)面(“不感興趣”、“不會(huì)再次使用”)體驗(yàn),其中條形粗細(xì)表示了解某項(xiàng)技術(shù)的受訪者數(shù)量:

圖片

其他工具用戶使用情況如下:

圖片

受訪者對(duì)構(gòu)建工具現(xiàn)狀的滿意度如下:

圖片

Monorepos 工具

下面來(lái)看看隨著時(shí)間的推移,熱門 Monorepos 工具的保留率、興趣率、使用率和認(rèn)知率。

保留率:

圖片

興趣率:

圖片

使用率:

圖片

認(rèn)知率:

圖片

隨著時(shí)間的推移,受訪者對(duì)所調(diào)查技術(shù)的看法:

圖片

下表在中心軸的兩側(cè)劃分了正面(“想學(xué)習(xí)”、“會(huì)再次使用”)和負(fù)面(“不感興趣”、“不會(huì)再次使用”)體驗(yàn),其中條形粗細(xì)表示了解某項(xiàng)技術(shù)的受訪者數(shù)量:

圖片

用戶對(duì)其他 Monorepos 工具的使用情況如下:

圖片

受訪者對(duì) Monorepos 工具現(xiàn)狀的滿意度如下:

圖片

其他工具

受訪者經(jīng)常使用的庫(kù)中,最受歡迎的就是 Lodash,超過(guò) 63% 的用戶使用過(guò) Lodash:

圖片

常用的時(shí)間處理庫(kù)中,超過(guò)一半的用戶使用 Moment,data-fns 緊隨其后。

圖片

常用的數(shù)據(jù)可視化庫(kù)中,使用最多的就是 Chart.js 和 D3,分別占比 58.6% 和 47.4%。

圖片

常用的數(shù)據(jù)獲取庫(kù)中,Axios 遙遙領(lǐng)先于其他庫(kù),超過(guò)80%的用戶使用 Axios。

圖片

常用的后端框架中,Express 領(lǐng)先于其他庫(kù),超過(guò)87%的用戶使用 Express。

圖片

常用的實(shí)用工具庫(kù)中,nvm 和 babel 是用的最多的工具庫(kù):

圖片

Node.js和瀏覽器依舊是最常用的JavaScript運(yùn)行時(shí):

圖片

常用的 JavaScript 風(fēng)格中,使用最多的就是 TypeScript。近 99% 的受訪者使用 TypeScript:

圖片

除了前端語(yǔ)言,用戶使用過(guò)的其他語(yǔ)言中,使用最多的就是 Python,有超過(guò) 40% 的用戶使用Python:

圖片

用法

下面來(lái)看看受訪者都是如何使用JavaScript的。

下面是受訪者使用 JavaScript 或 TypeScript 的占比情況,可以看到,超過(guò)73%的用戶都使用 TypeScript,可以預(yù)見(jiàn)未來(lái) TypeScript 的使用率會(huì)越來(lái)越高。

圖片

下面是用戶使用 JavaScript 的用途,98%的受訪者使用JavaScript編寫(xiě)前端應(yīng)用,還有65%的受訪者使用JavaScript編寫(xiě)后端應(yīng)用。

圖片

在開(kāi)發(fā)中使用的模式分布情況如下,可以看到,超過(guò)90%的應(yīng)用都是單頁(yè)應(yīng)用,有超過(guò)一半的項(xiàng)目使用了服務(wù)端渲染(SSR):

圖片

意見(jiàn)

JavaScript 正朝著正確的方向發(fā)展?可以看到,近幾年每種意見(jiàn)都趨于穩(wěn)定,超過(guò)76%的用戶認(rèn)同JavaScript正在朝著正確的方向發(fā)展。

圖片

現(xiàn)在構(gòu)建 JavaScript 應(yīng)用過(guò)于復(fù)雜?

圖片

JavaScript 生態(tài)系統(tǒng)變化太快?

圖片

JavaScript 的前三大痛點(diǎn):代碼架構(gòu)、依賴管理、狀態(tài)管理。

圖片

JavaScript 目前缺少的三大功能:靜態(tài)類型、標(biāo)準(zhǔn)庫(kù)、更好的日期管理。

圖片

受訪者對(duì)目前 Web 技術(shù)的整體滿意度如下:

圖片

調(diào)查結(jié)果:https://2022.stateofjs.com/en-US/

責(zé)任編輯:姜華 來(lái)源: 前端充電寶
相關(guān)推薦

2022-12-08 00:09:20

CSS生態(tài)圈技術(shù)趨勢(shì)

2023-04-04 13:31:18

2022-02-21 11:14:05

JavaScript報(bào)告技術(shù)

2016-07-14 15:57:06

華為

2012-06-15 10:03:57

2011-10-31 17:47:53

電子商務(wù)

2019-01-15 08:58:40

Kubernetes生態(tài)圈Docker

2013-07-22 17:41:58

2017-11-27 12:39:05

科天云協(xié)作云

2019-10-15 09:16:39

Java 報(bào)告開(kāi)發(fā)

2013-08-30 09:22:00

2017-03-15 18:43:46

華為

2016-11-01 14:30:09

大數(shù)據(jù)大數(shù)據(jù)技術(shù)

2018-11-13 15:05:33

大數(shù)據(jù)MapReduce機(jī)器

2020-12-31 23:45:47

類庫(kù)Python語(yǔ)言

2015-03-23 16:57:03

渠道生態(tài)圈華為

2015-06-01 11:39:50

云計(jì)算超融合架構(gòu)

2015-04-21 17:23:59

華為

2016-02-27 14:35:23

華為ICT產(chǎn)業(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)