---
title: "Exploring JavaScript symbols"
publication: "JavaScript Weekly"
issue: 714
published_at: "2024-11-21"
canonical_url: "https://javascriptweekly.com/issues/714"
---

Plus Angular 19, the State of JS survey, and building self contained JavaScript binaries. |        

#​714 — November 21, 2024 

[Read on the Web](https://javascriptweekly.com/issues/714)   

🦃 **We're taking next week off for Thanksgiving.** We don't celebrate it in our country, but we know many of you do, so it seemed a good time for a break. We'll be back on Thursday December 5.
__
_Your editor, Peter Cooper_ 

Together with [![Frontend Masters logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_300,h_70/e_make_transparent/co_white,e_outline:5/nk0tfdvalivacz8rw7rt.png)](https://frontendmasters.com/courses/testing/?utm_source=email&utm_medium=javascriptweekly&utm_content=testing)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/q2s34tnzhkga4m0vdjol.jpg)](https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/)  

[Importing a Frontend JavaScript Library Without a Build System](https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/) — Many developers prefer to eschew complex, modern build processes and use JavaScript in a more old-school way. You can definitely get by without a build system, and Julia explores some ways to import libraries in such a setup. 

Julia Evans   

[Angular v19 Released](https://blog.angular.dev/meet-angular-v19-7b29dfd05b84) — The latest version of the popular enterprise-scale app framework is here with a [▶️ 22 minute introductory video](https://www.youtube.com/watch?v=JvkX2_46gUY) running through what’s changed and what’s new, including incremental hydration (in preview), two new core reactivity primitives, event replay, and the ability to specify which routes are rendered server or client side. 

Minko Gechev   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/8197d880.png)](https://frontendmasters.com/courses/testing/?utm_source=email&utm_medium=javascriptweekly&utm_content=testing) 

[Ship Code Confidently When You Take Testing Fundamentals](https://frontendmasters.com/courses/testing/?utm_source=email&utm_medium=javascriptweekly&utm_content=testing) — Join Steve Kinney for this video course on test-driven development workflows and nail the testing fundamentals. You'll learn about automation, equality, mocks and spies, integration testing, the tools to help you along the way, and much more. 

Frontend Masters sponsor   

**IN BRIEF:** 

- 🗳️ [The latest _State of JS_ survey](https://survey.devographics.com/en-US/survey/state-of-js/2024) is now open and taking your responses. It's open until December 3.
- 🇫🇷 [dotJS 2025](https://www.dotjs.io/) is taking place next April in Paris, France. If you'd like to speak, [the CFP is open](https://www.dotjs.io/speak) until November 29.
- _AWS Lambda_, the serverless functions platform, [turns ten years old this week.](https://aws.amazon.com/blogs/aws/aws-lambda-turns-ten-the-first-decade-of-serverless-innovation/) Its first runtime was JavaScript-based.
- [Nova is an interesting new JavaScript engine](https://trynova.dev/blog/what-is-the-nova-javascript-engine) that takes a CPU cache friendly data-oriented approach.   

**RELEASES:** 

- [Bun v1.1.35](https://bun.sh/blog/bun-v1.1.35) – The fast JavaScriptCore-based runtime adds native support for Musl and Alpine Linux, the Bun binary is a lot smaller, `console.group` and `groupEnd` are now supported, and `fs.readFile` is faster on small files.
- [Payload 3.0](https://payloadcms.com/blog/payload-30-the-first-cms-that-installs-directly-into-any-nextjs-app) – Headless Next.js-native CMS platform.
- 📊 [Mantine v7.14.0](https://mantine.dev/changelog/7-14-0/) – The popular React component suite adds new 'angle slider', radial bar chart, funnel chart, and stacking modal/drawer components.
- [Node.js v23.3.0 (Current)](https://nodejs.org/en/blog/release/v23.3.0) and [v20.18.1 (LTS)](https://nodejs.org/en/blog/release/v20.18.1)
- [Ionic 8.4](https://ionic.io/blog/announcing-ionic-8-4), [ESLint v9.15.0](https://eslint.org/blog/2024/11/eslint-v9.15.0-released/), [Turborepo 2.3](https://turbo.build/blog/turbo-2-3), [Deno 2.1](https://github.com/denoland/deno/releases/tag/v2.1.0), [QuickJS 0.7](https://github.com/quickjs-ng/quickjs)
- 🤞 It wasn't released by the time we hit 'send' but we suspect TypeScript 5.7 will be out later today – you can check on [the TypeScript blog.](https://devblogs.microsoft.com/typescript/)  

📒 Articles & Tutorials  

[Exploring JavaScript Symbols](https://www.trevorlasn.com/blog/symbols-in-javascript) — [Symbols](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol) were a new _‘quirky little primitive’_ (as Trevor puts it) that arrived with ES6 ten years ago, but they continue to be poorly understood. Trevor boils them down really well, including a little side quest into the likely-to-be-deprecated ‘species.’ 

Trevor I. Lasn   

[Breakpoints and `console.log` Is the Past, Time Travel Is the Future](https://wallabyjs.com/blog/wallaby-2.html?utm_source=cooperpress&utm_medium=javascriptweekly&utm_content=javascriptweekly) — Next-level testing in any editor, 15x faster with Interactive Time Travel Debugger, real-time insights & advanced coverage in a new UI. 

Wallaby Team sponsor   

[Building Self-Contained Executable Programs with Deno](https://deno.com/blog/deno-compile-executable-programs) — One of [Deno](https://deno.com/)’s compelling features is its `deno compile` command that can turn JavaScript and TypeScript programs into single, easy to distribute cross-platform binaries. Here’s a bit more about what makes it tick. 

Ryan Dahl and Andy Jiang   

[Mapping Over Promises in JavaScript](https://www.telerik.com/blogs/mapping-promises-javascript) — A quick look at three approaches: `for..of`, `Promise.all`, and `p-map` 

Peter Mbanugo   

[Explore Sentry Launch Week: New Products and Community Highlights](https://sentry.io/events/launch-week/?utm_medium=paid-community&utm_source=nodeweekly&utm_campaign=fy25q4-launchweek&utm_content=newsletter-fy25q4-launchweek-register) — Join us for daily video drops on YouTube at 9am PT, and on Discord to chat live with the engineers building Sentry. 

Sentry sponsor   

📄 [Migrating from VuePress to VitePress](https://olets.dev/posts/migrate-from-vuepress-to-vitepress/) Henry Bley-Vroman 

📄 [Why Alpine is the 'New jQuery' and Why That's Awesome](https://frontendmasters.com/blog/why-alpine-is-the-new-jquery-and-why-that-is-an-awesome-thing/) Raymond Camden 

📄 [How to Prerelease an npm Package](https://cloudfour.com/thinks/how-to-prerelease-an-npm-package/) Scott Vandehey 

📄 [Precise Decimal Math in JavaScript with Fraction.js](https://www.trevorlasn.com/blog/fraction-numbers-in-javascript) Trevor I. Lasn 

📄 [How to Avoid Flaky Tests in Playwright](https://semaphoreci.com/blog/flaky-tests-playwright) Zanini and Ackerson 

📄 [Adding Interactive Charts in Astro](https://www.pavlinbg.com/posts/adding-interactive-charts-in-astro) Pavlin BG  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jycvvis1egjnzgebaybw.jpg)](https://simonwep.github.io/selection/)  

[Viselect: Let Users Visually Select DOM Elements](https://simonwep.github.io/selection/) — If you’ve got a variety of elements and you want users to be able to select them in groups, individually, or even in _multiple_ groups, this lets you offer that functionality easily. Can be used in a vanilla fashion or with integrations for P/React or Vue.js. 

Simon Reinisch   

[Perfectionist 4: ESLint Plugin for Sorting Things in Your Code](https://github.com/azat-io/eslint-plugin-perfectionist) — It doesn’t care _what_ you want to sort (props, imports, types, decorators, modules..) but if you want to enforce something _is_ sorted using ESLint, this is for you. It supports alphabetical and natural sorting, plus sorting by _line length_ which results in [this sort of aesthetic.](https://raw.githubusercontent.com/azat-io/eslint-plugin-perfectionist/main/docs/public/examples/example-line-length-dark.webp) 

Azat S.   

[Your Vectors Are Too Big](https://shortclick.link/zjcij2) — Are your massive full-fidelity vectors slowing down your search? Compress, cut costs, and boost speed with MongoDB Atlas! 

MongoDB sponsor   

[React Scan: Detect Performance Issues in Your App](https://react-scan.million.dev/) — A pure JavaScript tool you can drop into your app to automatically ‘scan’ for problematic renders without doing lots of integration work. There’s a simple demo on the homepage or you can see Aiden’s [view of Twitter/X being scanned](https://x.com/aidenybai/status/1857092333184958900). [GitHub repo.](https://github.com/aidenybai/react-scan) 

Aiden Bai   

💬 [Discordeno v19: A Powerful Discord API Library](https://discordeno.js.org/) — A long-standing way to work with, and build bots for, the popular Discord chat system. [v19](https://github.com/discordeno/discordeno/releases/tag/19.0.0) is a big update with breaking changes. [GitHub repo.](https://github.com/discordeno/discordeno) 

Discordeno Team   

🤖 [Vercel's AI Chatbot Starter Template](https://github.com/vercel/ai-chatbot) — An open source AI chatbot app template built using Next.js. It uses Vercel’s AI SDK and other Vercel APIs for the heavy lifting. 

Vercel   

[Glide.js 3.7: A Dependency-Free Slider and Carousel Control](https://glidejs.com/) — _“Designed to slide. No less, no more”_ says the creator. MIT licensed and mature. 

Jędrzej Chałubek      

📰 Classifieds   

[Meticulous automatically creates & maintains E2E UI tests](https://www.meticulous.ai?utm_source=javascript_weekly&utm_campaign=november15th). Zero flakes. Used by Lattice, Bilt Rewards and others. 

--- 

[Hookdeck](https://hookdeck.com/?ref=jsweekly-714): An alternative to Amazon API Gateway + Lambda + SQS. With local dev, debugging, and observability built-in.      

- [pretty-ms 9.2](https://github.com/sindresorhus/pretty-ms) – Convert milliseconds to human readable strings. Now with options to hide years, seconds and days, as preferred.
- ☕ [Javet 4.1](https://github.com/caoccao/Javet) – Embed Node.js and V8 into Java. Updates to Node v22.11.0 and adds Float16 support.
- [Embla Carousel 8.5](https://www.embla-carousel.com/) – Lightweight carousel library with fluid motion.
- [Sortable 4.0](https://github.com/tofsjonas/sortable) – Make tables sortable with`class="sortable"`
- 📊 [Vue Data UI 2.4](https://vue-data-ui.graphieros.com/) – Vue 3 data visualization components.
- [Capacitor 6.2](https://github.com/ionic-team/capacitor) – Build cross-platform native apps with JS.
- [Peggy 4.2](https://peggyjs.org/) – Parser generator for JavaScript.         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
