2020 全球 JS 現狀調查報告

大家好,我是若川。偷偷告訴你,今天推文的第二條是在我的公眾號回復「網盤」免費領取百度網盤會員,歡迎大家分享轉發。

給大家分享一篇好文,往期類似好文:
2020 前端技術發展回顧
2020年大前端技術趨勢解讀

以下是正文~



千呼萬喚的全球2020的JS報告終于出來了。順便附上2020全球CSS報告地址 2020年度全球CSS報告新鮮出爐[1]


我們來看看這一個糟糕卻又不平凡的一年,JS發生了什么樣的變化。


盡管2020年很糟糕,但 JavaScript 作為一個整體仍然設法向前發展。隨著語言本身的不斷改進,得益于諸如可選鏈操作符空值合并操作符并等新特性,TypeScript靜態類型的普及更是將JS帶到了一個全新的高度。

在框架方面,就在我們認為一切都已解決的時候,Svelte 橫空出世以全新方式給前端注入新的血液。在多年的webpack統治下,甚至構建工具也顯示出新活動的跡象。

但是這次的區別是,相對而言,“老”后衛什么都沒走。Svelte和Snowpack很棒,但是React和webpack也很棒。可以肯定的是,它們最終也會成為JavaScript大流氓的犧牲品,但是不會持續很多年。

所以,讓我們享受我們所擁有的: 一個不斷變得更好的偉大的生態系統!

訪問對象統計

采樣對象一共為 20744 位開發者。

特性

雖然大多數受訪者都知道調查中提到的大多數JavaScript特性,但很多人還沒有真正使用它們。

這圖表顯示了按類別分組的所有特性的不同采用率。外圈的大小對應于了解某項功能的用戶總數,而內圈則代表實際使用過該功能的用戶。

技術現狀

2016年 - 2020年 趨勢圖

每條線從2016年到2020年(粗部為2020)。縱軸越高,表示一項技術被更多的人使用,橫軸越大,表示有更多的用戶想要學習,或者曾經使用過,還會再次使用。


可以看出隨著年限的的增長。webpack、Express、TypeScript、Jest、React 可以說是非常強勢了。

風味(Flavors)


可以看出 TypeScript 依舊獨領風騷,其次就是 Elm ,但是 PureScript 也是一個值得關注的增強類型語言。


對 TypeScript 的熟悉度一片叫好。

其他工具


前端框架


正如開頭所說,svelte 的出現真的是對前端行業的沖擊,原以為三大框架(React、Vue.js、Angular)包攬所有的時候,它出現了,一度成為了第四名(使用量),但是從興趣度和滿意度來看,它未來的潛力不可估量。

興趣度


滿意度


數據層


使用排名比較高的狀態管理依舊是Redux、Vuex、Mobx。數據管理為 GraphQL 和 Apollo,并且 XState 橫空出世。

其他工具


后端框架


Express 依舊是統治地位,而 Next 和 Nuxt 這些服務端渲染的框架也逐漸成為大家的所選的框架。

其他工具


測試框架


Jest和 Mocha 在使用量上依舊是統治地位,但是新增了 Testing Libray 很強勁。

以下是滿意度排行。


什么是 Testing Library ?用于 DOM 和 UI 組件測試的一系列工具,主要 API 包含 DOM 查詢,更可以和其他測試工具(jest、cypress)配合,用于更多場景(react、vue、svelte)。而它是 React 的官方推薦。

我們推薦使用 React Testing Library[2],它使得針對組件編寫測試用例就像終端用戶在使用它一樣方便。

----摘自 React 官網(https://zh-hans.reactjs.org/docs/test-utils.html)

打包工具


雖然短時間內 webpack 使用量還處于霸主地位,這一年打包工具的發生了巨大的變化。

以下為滿意度


可以說這里發生了天翻地覆的變化。從 Parcel 到 Snowpack ,再到后來的 esbuild ,每一個都是打包的好手,至于 Vite 為什么沒有在其中,我猜想,Vite 最開始只是為了解決 Vue 單個框架的方向,受眾面不夠廣泛(現在它已經支持了多種框架的打包了)。

放張圖來看看這些 bundleless 工具的速度吧。


其他工具


移動和桌面端


Electron 依舊是桌面端的第一選擇, Cordova 和 React Native 也是移動跨端的熱門選擇。但是新出的 Capacitor 值得關注。

其他工具

常用的工具函數庫有?


其他工具函數庫


JavaScript 運行時選擇


經常使用那(些)文字編輯器?


常用用于開發的瀏覽器有哪些?


資料

常用的 blog 和雜志?


關注了哪些網站和課程?

參考資料

[1]

2020年度全球CSS報告新鮮出爐: https://segmentfault.com/a/1190000038427691

[2]

React Testing Library: https://testing-library.com/react

推薦閱讀

我在阿里招前端,我該怎么幫你?(現在還可以加模擬面試群)
如何拿下阿里巴巴 P6 的前端 Offer
如何準備阿里P6/P7前端面試--項目經歷準備篇
大廠面試官常問的亮點,該如何做出?
如何從初級到專家(P4-P7)打破成長瓶頸和有效突破
若川知乎問答:2年前端經驗,做的項目沒什么技術含量,怎么辦?
若川知乎高贊:有哪些必看的 JS庫?

末尾

你好,我是若川,江湖人稱菜如若川,歷時一年只寫了一個學習源碼整體架構系列~(點擊藍字了解我)

  1. 關注若川視野,回復"pdf" 領取優質前端書籍pdf,回復"1",可加群長期交流學習

  2. 我的博客地址:https://lxchuan12.gitee.io?歡迎收藏

  3. 覺得文章不錯,可以點個在看呀^_^另外歡迎留言交流~

精選前端好文,伴你不斷成長

若川原創文章精選!可點擊

小提醒:若川視野公眾號面試、源碼等文章合集在菜單欄中間【源碼精選】按鈕,歡迎點擊閱讀,也可以星標我的公眾號,便于查找

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276259.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276259.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276259.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ie兼容響應式布局的實現總結 和 針對ie瀏覽器的CSS

參考鏈接:http://zhidao.baidu.com/link?urlbQioDKMnG_eQoE6dCxzd2hPtMyiB7phu6hBdOupn1Pjk1hV-ItXFZS5GDUBoH5qrfi9LXkUoSciXTiGN36G6LK 參考鏈接:http://blog.sina.com.cn/s/blog_601b97ee0101aszo.html ie瀏覽器hack .demo {padding:10px;padding:9…

group by 保留哪一條數據_使用R語言繪制一維數據統計圖總結

加載數據 繪制莖葉圖 繪制直方圖 繪制概率密度曲線 繪制小提琴圖 繪制箱線圖 繪制小提琴圖箱線圖 集中趨勢統計 分散程度 apply的使用加載數據模擬數據下載library(tidyverse) cjb <- read.csv("/home/wy/Downloads/cjb.csv",header TRUE,stringsAsFactors FALS…

npm安裝和Vue運行

一、開始&#xff1a; 下載地址&#xff1a;http://nodejs.cn/download/ 下載安裝&#xff1a; 直到 二、打開CMD,檢查是否正常 在安裝目錄里新增兩個文件夾 然后運行命令&#xff1a;如下圖&#xff1a; npm config set prefix "D:\InstallSoftWare\nodejs\node_global&q…

Scott 32 歲前端年終總結,探尋另一種可能

今年一年都是飛快 這 10 年編程好時光&#xff0c;花費在不經意間&#xff0c;而立的第三年也即將用完&#xff1a;23 到 26 歲&#xff0c;花在了阿里&#xff0c;從入門到職業迷茫&#xff0c;27 到 29 歲&#xff0c;花在了創業&#xff0c;從熱血到倒閉還錢&#xff0c;30 …

跨頁數據傳遞的兩種方式

選擇具有PostBackUrl屬性的三個控件Button、LinkButton、ImageButton。PostBackUrl屬性的值就是投遞的頁面URL。 要在接收頁面按對象的方式接收投遞頁面的表單中的值有兩種方式&#xff1a; 1、PreviousPage.FindControl(“控件變量名”)&#xff0c;這個方法返回的是Control類…

linux批量殺進程_Linux下批量殺JAVA進程

在工作中經常需要停止JAVA進程&#xff0c;停止時間也比較長&#xff0c;那么有時候因為一些情況&#xff0c;需要把 linux 下JAVA所有進程kill 掉&#xff0c;又不能用killall 直接殺掉某一進程名稱包含的所有運行中進程(我們可能只需要殺掉其中的某一類或運行指定參數命令的進…

用jquery1.9版本判斷ie瀏覽器及ie6瀏覽器

參考鏈接&#xff1a;http://www.my0832.com/158182/blog-117887.html jQuery 從 1.9 版開始&#xff0c;移除了 $.browser 和 $.browser.version &#xff0c; 取而代之的是 $.support 。 在更新的 2.0 版本中&#xff0c;將不再支持 IE 6/7/8。 以后&#xff0c;如果用戶需要…

嵌入式操作系統 NuttX 5.0 發布

Nuttx 是一個實時嵌入式操作系統&#xff08;RTOS&#xff09;&#xff0c;它有一個小巧是在微控制器的環境中使用。這是完全可擴展&#xff0c;從小型&#xff08;8位&#xff09;至中型嵌入式&#xff08;32位&#xff09;系統。它的目的還 在于要完全符合標準&#xff0c;完…

Windows下Mysql 的安裝和卸載

2019獨角獸企業重金招聘Python工程師標準>>> 一、安裝 1、下載zip文件 2、解壓&#xff0c;在bin目錄下新建my.ini [mysql] # 設置mysql客戶端默認字符集 default-character-setutf8 [mysqld] # 設置3306端口 port3306 # 設置mysql的安裝目錄 basedirC:\Program Fil…

現在學前端還來得及嗎?總聽人說飽和了

“前端已經飽和了&#xff0c;現在學前端沒有前途了”每次聽到這種論調我都氣不打一處來。自己技藝不精&#xff0c;然后就說市場飽和了。是&#xff0c;現在的確不是那個會切個圖&#xff0c;懂點htmlCSS就能找到工作的年代了。現在對前端的技術要求稍微高了點&#xff0c;但這…

jquery網頁刷新后控件失效_jquery動態增減控件如何才能不刷新頁面

已結貼√問題點數&#xff1a;20 回復次數&#xff1a;9jquery動態增減控件如何才能不刷新頁面用jquery動態管理控件&#xff0c;可是每一次增減控件都會刷新頁面&#xff0c;然后控件里面原來輸入的值就都不在了&#xff0c;可以怎么來實現在動態增減控件時不刷新頁面呢&#…

HTML代碼 網頁設置 QQ空間等分享

轉載鏈接&#xff1a;http://zhidao.baidu.com/link?urlgpehGR7eSSyilECgVIOuZnDycBUjKABR2VubZAUSRD89qQrNhlCBxHuIUq9mQmvGaQy2RUSw1gAx614JlroXFK 右邊&#xff1a; <!-- Baidu Button BEGIN --> <script type"text/javascript" id"bdshare_js&qu…

固定資產減值準備與累計折舊會計核算的關系

轉載http://hi.baidu.com/ddumy/blog/item/d96b361901776e7ddab4bdd6.html固定資產減值準備與累計折舊會計核算的關系【摘 要】 固定資產減值準備與累計折舊是固定資產核算的重要組成部分&#xff0c;又都是“固定資產”的備抵項目&#xff0c;它們共同反映著固定資產的現時價值…

DotNetNuke 5 C#版本解讀之2--HTTP Modules

在前面文章里說明了DNN的架構&#xff0c;下面這個圖應該說是更加能夠全面的讓你去了解它的結構&#xff1a; 如果你是個asp.net新手建議你看看前面這部分&#xff0c;因為它會向你介紹什么是http module,以及其他的一些概念。我想通過你讀這篇文章來明白asp.net的機制&#xf…

用框架的你,可能早已忽略了這些事件API

DOMContentLoaded&#xff0c;load&#xff0c;beforeunload&#xff0c;unloadHTML 頁面的生命周期包含三個重要事件&#xff1a;DOMContentLoaded —— 瀏覽器已完全加載 HTML&#xff0c;并構建了 DOM 樹&#xff0c;但像 <img> 和樣式表之類的外部資源可能尚未加載完…

調用接口登錄禪道_有java調用api登錄并驗證禪道的實例嗎

展開全部本文實例為大家分享了32313133353236313431303231363533e78988e69d8331333363396466JAVA的短信驗證碼api調用代碼&#xff0c;供大家參考&#xff0c;具體內容如下import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOException;import j…

[Docker]Docker快速上手學習筆記

0. 學習的一些疑問 如何熱更新鏡像(images)&#xff1f;&#xff08;你可以快速啟動或者銷毀容器。這種時間幾乎是實時的&#xff09;如何熱更新游戲服&#xff1f;好處在于各個應用之間環境相互獨立&#xff0c;即使某一個容器崩潰也不會影響到其它容器&#xff1b;每個容器使…

原來 Clipboard 還能復制圖像?原理是什么

在寫了 這個 29.7 K 的剪貼板 JS 庫有點東西&#xff01; 這篇文章之后&#xff0c;收到了小伙伴提的兩個問題&#xff1a;1.clipboard.js 這個庫除了復制文字之外&#xff0c;能復制圖像么&#xff1f;2.clipboard.js 這個庫依賴的 document.execCommand API 已被廢棄了&…

計算機大數據的前景方向_計算機方向,網絡與信息安全和大數據哪個前景好一點?...

大數據是我目前的研究方向之一&#xff0c;我也曾經做過網絡安全相關的項目&#xff0c;主要涉及的是各種網絡環境下數據傳輸的安全處理方案。另外&#xff0c;我曾經給高校的學生做過網絡安全的系列講座&#xff0c;系統地整理過網絡安全的相關內容&#xff0c;所以我來談一談…

Smarty 顯示大括號 | 在Smarty中計算數組元素的長度 | Smarty字符串拼接

參考鏈接&#xff1a;http://hi.baidu.com/bdusnb/item/289d160e6a9c92cd9157183d 參考鏈接&#xff1a;http://hi.baidu.com/mayimu789/item/b565088d047da0d05f0ec16f 參考鏈接&#xff1a;http://blog.sina.com.cn/s/blog_8155e74d0101el2k.html Smarty 3 &#xff1a;大…