#JavaScript

RSSフィード
おすすめ
公開日:

Polyfillがアップデートしたライブラリに適用されておらず、古いブラウザで利用できないメソッドが呼び出されランタイムエラーが発生していた。Polyfillを適用する設定を見直すことで対応した。

All Posts

Q. 古いブラウザ用のアプリでライブラリをアップデートしたら動作しなくなった

Polyfillがアップデートしたライブラリに適用されておらず、古いブラウザで利用できないメソッドが呼び出されランタイムエラーが発生していた。Polyfillを適用する設定を見直すことで対応した。

Invalid WebSocket frame: RSV1 must be clearについての調査ログ

macOSで開発を行っていると遭遇した「RangeError: Invalid WebSocket frame: RSV1 must be clear」エラーについて調査した際のログ。

ページを離れた際に呼ばれるブラウザイベントについて

ページを離れた際に呼ばれるブラウザイベントについて、共有したくなったので改めて少し調査した上でまとめた。

Q. コンポーネントをuseCallbackで作るかスコープ外の関数として切り出すべきか

個人的には出来る限りスコープ外の関数としてコンポーネントを切り出すべきだと考えている。パフォーマンス、コードとしての質、将来性の観点から説明を行った

iOS Safariの音声再生における制限とその回避策の検証

ブラウザでは音声の自動再生を防ぐ目的で、音声の再生が制限されている。この記事では、特に制限が厳しいと言われるiOS Safariについて、その制限と回避策の検証を行った内容をまとめる。

Canvasを使ってカーソルにエフェクトを付与する

Canvas APIを利用してマウスに追従するエフェクトを付与する方法を紹介する。

一部の属性値(data- など)は、型定義がJSXに含まれていなくても型エラーにならない

data-属性やaria-属性などは、型定義がJSXに含まれていなくても型エラーになりません。この理由や型エラーになるケースについて紹介します。

Q. JWTから渡されたBase64文字列をwindow.atob()に渡すとエラーが出る場合がある

JWTをクライアントでデコードする際にエラーが出る場合があると相談を受けた際の調査結果をまとめた。

Q. Day.jsのisValidメソッドの日付判定が緩い

Day.jsのisValidメソッドの判定が緩いのは何故かと質問を受けたので、その理由についてまとめた。

News bits

Chrome 146リリース

スクロールトリガーアニメーション、Scoped Custom Element Registry、Sanitizer API、AudioContext.playbackStatsの導入など。

Transformers.js v4 Preview公開

WebGPUランタイムの導入による大幅なパフォーマンス向上、Node.js/Bun/Denoでの実行サポート、新しいビルドシステムによる軽量化など。

Vercel、AI SDK 5をリリース

Vercelは、TypeScript/JavaScript向けのオープンソースAIツールキットであるAI SDKのメジャーアップデート、バージョン5をリリース。今回のアップデートでは、フルスタックでのエンドツーエンドな型安全性を実現するチャット機能の再設計と、エージェントループを精密に制御するための新しいプリミティブの導入に焦点が当てられている。

Chrome 135 リリース

Chrome 135 がリリース。非常に多くの機能追加や変更が行われている。以降ではいくつかピックアップして紹介する。

zx 8.5.0 リリース、コア機能のみの軽量バージョン zx@lite を提供

zx 8.5.0 がリリース。パッケージの提供フローが刷新され、様々な方法でのインストールが可能になった。 またコア機能のみの軽量バージョン zx@lite を提供するようになった。 ### 参考文献

New to the web platform in March

3 月の Web Platform の新機能について、まとめた記事が公開された。

Safari 18.4 リリース

Safari 18.4 がリリース。非常に多くの機能追加や変更が行われている。以降ではいくつかピックアップして紹介する。

React 19.1.0 リリース

React 19.1.0 がリリース。

Bun 1.2.7 リリース

Bun 1.2.7 がリリース。Bun.Cookie、Bun.CookieMap の追加など。 ### 参考文献

Speeding up the JavaScript ecosystem - Rust and JavaScript Plugins

Rust 製ツールの JavaScritp プラグインはデータ転送時のコストに懸念があったが、データ構造を工夫することで十分な高速化を達成した話。

JavaScript Temporal is coming - MDN

Temporal を紹介する記事と、270 ページを超える Temporal についてのドキュメントが MDN で公開。

Google 検索に JavaScript を必須化

Google 検索が JavaScript の実行を要求するようになった。

WinterTC

サーバーサイドの JavaScript ランタイムの相互運用性の向上を目指していた Winter CG が、W3C コミュニティグループから Ecma International に移行し、WinterTC になった。

State of JS 2024

State of JS 2024 の結果が公開された。

New ECMAScript Stage 4 Proposals

2024 年 10 月 12 日の TC39 ミーティングで、Promise.try、Import Attributes、RegExp Modifiers、Sync Iterator helpers、JSON Modulesが Stage 4 になった。

JavaScript Primer v6.0.0

JavaScript Primer v6.0.0 がリリースされた。ECMAScript 2024 の対応が行われ、Node.js のユースケースを新たに増えた node:util の parseArgs 関数や node:test を使うように変更されている。

es-toolkit

es-toolkitは Lodash 互換を目指している。代替ライブラリよりバンドルサイズやパフォーマンスに優れているとされている。

ECMAScript 2024 の仕様が承認

https://github.com/tc39/ecma262/releases/tag/es2024

vlt

npm に代わる新しい JavaScript のパッケージシステム「vlt」を開発している vlt technology に、npm の作者や今まで npm に関わったメンバーが参加したらしい。

Safari 17.4

2024 年 3 月 5 日に Safari 17.4 がリリースされました。

quick-lint-js 3

2024 年 1 月 1 日に quick-lint-js 3 がリリースされました。

ES2023

ECMAScript 2023 は、2023 年にリリースされる ECMAScript の仕様です。 なお ECMAScript は、前年に Stage 4 となった機能が次期 ECMAScript に含まれるという仕組みであり、 Stage 4 の条件として 2 つ以上の実装が必要であるため、次期 ECMAScript がほとんどのブラウザで既に実装されているということがよくあります。

著者について

Hi there. I'm hrdtbs, a frontend expert and technical consultant. I started my career in the creative industry over 13 years ago, learning on the job as a 3DCG modeler and game engineer in the indie scene.

In 2015 I began working as a freelance web designer and engineer. I handled everything from design and development to operation and advertising, delivering comprehensive solutions for various clients.

In 2016 I joined Wemotion as CTO, where I built the engineering team from the ground up and led the development of core web and mobile applications for three years.

In 2019 I joined matsuri technologies as a Frontend Expert, and in 2020 I also began serving as a technical manager supporting streamers and content creators.

I'm so grateful to be working in this field, doing something that brings me so much joy. Thanks for stopping by.