State of JavaScript 2024

不只是问卷,整个问卷阅读🔗下来,相信必有收获!

本文全文摘录自调查问卷 / State of JavaScript 2024,填写时发现很多新特性、框架等没有使用乃至听说过,特摘录下来以供个人学习查阅。

已出调查报告:

"在我们忙于决定下一个前端库的选择时,JavaScript 本身也在经历着自身的演变。
新的 TC39 提案正在社区中引起轰动,而其他提案已经处于即将在各大浏览器中实施的边缘。同时,TypeScript 的流行使得未来某个时候原生类型支持的可能性变得真实。
可以肯定的是——尽管 2024 年的 JavaScript 仍然感觉很熟悉,但我们无法保证五年后我们还能对所写的语言有同样的感受。
在此之前,您可以通过参与今年的 JavaScript 现状调查来帮助我们绘制未来的路径!"

1. 特性

您使用过以下哪些语法特性?

  • [ ] Dynamic Import Load a module asynchronously and dynamically.
  • [ ] Nullish Coalescing Return first value, or second value if first value is null or undefined.
  • [ ] Private Properties Properties that cannot be legally referenced outside of the class.
  • [ ] Logical Assignment Operators to assign a value to a variable based on its own truthy/falsy status.
  • [ ] error.cause Indicate the specific original cause of the error.
  • [ ] Hashbang Grammar Provide the path to a specific JavaScript interpreter that you want to use to execute the script.
  • [ ] 无

您使用过以下哪些字符串特性?

  • [ ] string.replaceAll() Replace all instances of a string.
  • [ ] string.matchAll() Return an iterator of all results matching this string against a regular expression.
  • [ ] Regexp Match Indices Store the start and end positions of each matched capture group.
  • [ ] 无

您使用过以下哪些数组特性?

  • [ ] array.findLast() Returns the value of the last element that satisfies the testing function.
  • [ ] array.toSorted() Sort without mutating the original array.
  • [ ] array.toReversed() Reverse without mutating the original array.
  • [ ] array.with() Returns a new array with the element at the given index replaced with the given value.
  • [ ] array.toSpliced() Splice without mutating the original array.
  • [ ] array.fromAsync() Similar to Array.from but for async iterators.
  • [ ] 无

Which of these Set features have you used? (2024年新增)

  • [ ] set.intersection() Returns a new set containing elements in both this set and the given set.
  • [ ] set.union() Returns a new set containing elements of both this set and the given set.
  • [ ] set.difference() Returns a new set containing elements in this set but not in the given set.
  • [ ] set.symmetricDifference() Returns a new set containing elements which are in either this set or the given set, but not in both.
  • [ ] set.isSubsetOf() Returns a boolean indicating if all elements of this set are in the given set.
  • [ ] set.isSupersetOf() Returns a boolean indicating if all elements of the given set are in this set.
  • [ ] set.isDisjointFrom() Returns a boolean indicating if this set has no elements in common with the given set.
  • [ ] 无

Which of these Object features have you used? (2024年新增)

  • [ ] Object.groupBy() Group the elements of a given iterable according to the string values returned by a provided function.
  • [ ] 无

您使用过以下哪些异步特性?

  • [ ] Promise.allSettled() Returns a single Promise that fulfills when all of the input's promises fulfills.
  • [ ] Promise.any() Returns a single Promise that fulfills when any of the input's promises fulfills.
  • [ ] Promise.try() Take a callback of any kind and wrap its result in a Promise.
  • [ ] 无

您使用过以下哪些浏览器 API?

  • [ ] WebGL
  • [ ] Web Animations
  • [ ] WebRTC
  • [ ] Web Speech API
  • [ ] WebSocket
  • [ ] Page Visibility API
  • [ ] Broadcast Channel API
  • [ ] Geolocation API
  • [ ] WebXR Device API
  • [ ] Temporal Provides standard objects and functions for working with dates and times.
  • [ ] Gamepad API
  • [ ] Web Authentication API
  • [ ] Progressive Web Apps
  • [ ] WebAssembly (WASM)
  • [ ] 无

2. 前端框架

调查框架使用情况

  • React
  • Vue.js
  • Angular(请注意,此问题仅针对 Angular 的用户体验, 而不是 已经弃用的 AngularJS.)
  • Preact
  • Svelte
  • Alpine.js
  • Lit
  • Solid
  • Qwik
  • Stencil
  • HTMX

3. 元框架

调查元框架使用情况

  • Next.js
  • Nuxt
  • Gatsby
  • Remix
  • Astro
  • SvelteKit
  • Docusaurus
  • SolidStart
  • Deno Fresh

4. 测试工具

调查元框架使用情况

  • Jest
  • Mocha
  • Storybook
  • Cypress
  • Puppeteer
  • Testing Library
  • Playwright
  • WebdriverIO
  • Vitest
  • Selenium
  • TestCafe
  • Mock Service Worker
  • Node Test Runner

5. 构建工具

调查构建工具使用情况

  • webpack
  • Parcel
  • Rollup
  • tsc CLI
  • SWC
  • esbuild
  • Vite
  • Turbopack
  • tsup
  • Biome
  • Rspack
  • Rolldown

6. Monorepo 工具

调查 Monorepo 工具使用情况

  • Rush
  • Turborepo
  • Yarn Workspaces
  • Yalc
  • Lerna
  • npm Workspaces
  • pnpm
  • Nx

7. 其他工具

您经常使用哪些工具库?

  • [ ] Immer
  • [ ] Lodash
  • [ ] Underscore.js
  • [ ] Ramda
  • [ ] jQuery
  • [ ] RxJS
  • [ ] stdlib
  • [ ] Zod
  • [ ] core-js
  • [ ] Partytown
  • [ ] Mitosis
  • [ ] Moment
  • [ ] Day.js
  • [ ] date-fns
  • [ ] Luxon
  • [ ] Yup
  • [ ] 其他
  • [ ] 无

专用于图形和动画的库

  • [ ] Popmotion
  • [ ] PixiJS
  • [ ] Theatre.js
  • [ ] Lottie
  • [ ] Anime.js
  • [ ] Three.js
  • [ ] GSAP
  • [ ] React-Spring
  • [ ] Framer Motion
  • [ ] Motion One
  • [ ] D3
  • [ ] 其他
  • [ ] 无

后端框架

生成 API 和管理后端的框架

  • [ ] Express
  • [ ] Nest
  • [ ] Strapi
  • [ ] Fastify
  • [ ] Meteor
  • [ ] Hapi
  • [ ] Koa
  • [ ] Adonis
  • [ ] Keystone
  • [ ] Redwood
  • [ ] Sails
  • [ ] Directus
  • [ ] Amplication
  • [ ] Blitz
  • [ ] Hono
  • [ ] ElysiaJS
  • [ ] 其他
  • [ ] 无

你最常使用哪个引擎/运行时/执行环境?

  • [ ] Browser
  • [ ] Node.js
  • [ ] Deno
  • [ ] ChakraCore
  • [ ] Hermes
  • [ ] Service Workers navigator.serviceWorker.register("/sw.js")
  • [ ] Bun
  • [ ] 其他
  • [ ] 无

您经常使用哪些边缘或无服务器运行时?

  • [ ] AWS Lambda
  • [ ] Cloudflare Workers
  • [ ] Netlify Edge Functions
  • [ ] Google Cloud Functions
  • [ ] Vercel Edge Runtime
  • [ ] Fly.io
  • [ ] Digital Ocean Functions
  • [ ] Azure Functions
  • [ ] Deno
  • [ ] 其他
  • [ ] 无

您经常使用哪些非 JavaScript 语言?

Other than JavaScript or TypeScript.

  • [ ] PHP
  • [ ] Ruby
  • [ ] Python
  • [ ] Go
  • [ ] Rust
  • [ ] Java
  • [ ] C/C++
  • [ ] Objective-C
  • [ ] Scala
  • [ ] Swift
  • [ ] C#
  • [ ] Haskell
  • [ ] OCaml
  • [ ] Dart
  • [ ] Kotlin
  • [ ] Elixir
  • [ ] Bash
  • [ ] Clojure
  • [ ] Elm
  • [ ] Julia
  • [ ] 其他
  • [ ] 无

您经常使用哪些人工智能工具来帮助您编写代码?

  • [ ] Amazon CodeWhisperer
  • [ ] v0
  • [ ] JetBrains AI
  • [ ] Codium
  • [ ] Google Gemini
  • [ ] ChatGPT
  • [ ] Codeium
  • [ ] Microsoft Bing
  • [ ] Cursor
  • [ ] Perplexity
  • [ ] Copilot
  • [ ] Tabnine AI assistant for software developers
  • [ ] Phind
  • [ ] Cody
  • [ ] Llama
  • [ ] Claude
  • [ ] 其他
  • [ ] 无

您使用过哪些服务来托管 JavaScript 应用程序?

  • [ ] AWS
  • [ ] Azure
  • [ ] Cloudflare
  • [ ] Digital Ocean
  • [ ] Fastly
  • [ ] Fly.io
  • [ ] GitHub Pages
  • [ ] Google Cloud
  • [ ] Heroku
  • [ ] Netlify
  • [ ] Render
  • [ ] Vercel
  • [ ] Railway
  • [ ] 其他
  • [ ] 无

8. 使用情况

  • JavaScript/TypeScript 平衡
  • Compiled Code Balance
  • AI Code Generation
  • JavaScript 使用情况
  • 行业
  • 应用范式
  • JavaScript 痛点
  • New Proposals
  • 缺失的功能
  • Native Types
  • Web 技术满意度
  • JavaScript 满意度

9. 资料

Which newsletters do you read to stay up to date with web development news?

前端资讯

  • [ ] Frontend Horse
  • [ ] JavaScript Weekly
  • [ ] Node Weekly
  • [ ] Frontend Focus
  • [ ] Bytes
  • [ ] This Week In React
  • [ ] TLDR
  • [ ] CSS-Tricks
  • [ ] SitePoint
  • [ ] Web Design Weekly
  • [ ] Vue News
  • [ ] 其他
  • [ ] 无

订阅了哪些编程相关的播客?

  • [ ] Syntax
  • [ ] JS Party
  • [ ] Web Standards
  • [ ] The Changelog
  • [ ] Shop Talk Show
  • [ ] JavaScript Jabber
  • [ ] Miguel Ángel Durán
  • [ ] PodRocket
  • [ ] DevTalles
  • [ ] Front End Happy Hour
  • [ ] The Primeagen
  • [ ] The CSS Podcast
  • [ ] Stack Overflow Podcast
  • [ ] Svelte Radio
  • [ ] DevtoolsFM
  • [ ] 其他
  • [ ] 🚫 无

Last updated: