このスライドはSlidevで作られており、以下のレポジトリで公開しています https://github.com/riya-amemiya/amemiya_riya_slide_data/tree/main/frontend_conf_tokyo_2025
こないだuhyoさんがこういうツイートをしていた。 typeof x === "undefined" が typeof x>"u" にminifyされるのを見たんだけど、 これってのちのちtypeofの結果が増えたら壊れるやつではないか。いいのかな。もう増えない読みか(?) — 🈚️うひょ🤪✒📘 TypeScript本発売🫐 (@uhyo_) August 29, 2025 確かに typeof 演算子で得られる結果の中で辞書準比較で最も大きいのは "undefined" だから、typeof x > "u" は typeof x === "undefined" と同じ意味になる。なので、この minification は一見理にかなっているように見える。実際esbuildがこの方法でminifyをしている(Webのplaygroundでの実行結果)。 しかし少なくともJSCにおい
Google DocsやFigmaのような複数人が同時編集できるアプリケーションを作るためには「ロックフリー」な共同編集の技術が必要です。誰かが文字を入力するたびにサーバーの更新完了を待つわけにはいきませんが、だからといって各自が好き勝手にデータを書き換えてしまうとテキストが混ざったり他のユーザーのアイテムを消してしまったり、さまざまな問題が発生するためです。 この問題を解決するための代表的なアルゴリズムがCRDTで、CRDTをベースに共同編集機能を提供するメジャーなJSライブラリがYjsです。CRDTとYjsについては以前の記事『共同編集を支える技術とライブラリの活用』でも紹介しており、ICSではYjsを利用した開発も行っています。 このYjsの有力なライバルとして、2024年に正式リリースされたのがLoro(ロロ:スペイン語でオウム)です。後発だけに、これまで実装が難しかった便利な機能
2025年7月時点の npm trends は以下の通りです。 Vue ― 小さく始めて大きく育てられる「プログレッシブフレームワーク」 Vue は 「プログレッシブフレームワーク」 として紹介されています。 「プログレッシブ」とは、小さな機能から段階的に導入でき、必要に応じてフル機能のフレームワークへと拡張できる柔軟性を指します。 例えば、既存のWebサイトにあるお問い合わせフォームや商品の絞り込み検索ウィジェットなど、特定の「動く部分」だけをVueで開発し、既存のHTMLに <script> タグを数行追加するだけで組み込めます。 <body> <h1>私の素敵なWebサイト</h1> <div id="app"> <button @click="count++">カウント: {{ count }}</button> </div> <script src="https://unpkg.
JavaScript PrimerのNotebookLMが利用可能になりました。 NotebookLMは、Googleが提供するAIを活用したノートブック環境で、登録したソースに対して質問をしたり、情報を検索したりすることができます。 次のリンクから、JavaScript PrimerのNotebookLMにアクセスできます。 📖 JavaScript Primer - 迷わないための入門書 - NotebookLM JavaScript Primer on NotebookLM JavaScript PrimerのコンテンツがNotebookLMに入ってることで、読者は書籍の内容についてNotebookLMに直接質問したり、Podcastとして音声で聞いたりすることができるようになります。 NotebookLMを活用することで、JavaScript Primerを読み進める中で生じた疑
はじめに javascriptやreact、jest、testing-libraryに触れてきてエラーに遭遇したとき、非同期処理が理解できていないから解決できないのではと思いました。 なんとなくわかっているつもりになっている非同期処理について、学んだことをまとめてみました。 同期処理と非同期処理の違い 「非同期処理」という言葉があるということは、同期処理もあるはずです。 同期処理 一つの処理が完了するのを待ってから、次の処理へ進むことと理解しました。 ※MDNから引用 const name = "Miriam"; const greeting = `こんにちは。私は ${name} です。`; console.log(greeting); // "こんにちは。私は Miriam です。" コードは上から順番に処理が終わるのを待ってから、次の処理が実行されます。 同期処理のデメリット 一つの
TypeScriptアドベントカレンダーの12/5のエントリーです。昨日は@nanasi-1さんの【TypeScript】ジェネレーターによる遅延評価でフィボナッチ数列を生成するでした。 イマドキのJavaScriptの書き方2018というのを以前書いたのだけど、配列周りはかなり変わっているな、というのを思ったので、そこの部分だけアップデートするつもりで書いてみました。 実環境で使えるECMAScriptバージョン今時のブラウザは常に最新に更新されるはずなのでECMAScript 2024の機能もフルに使えるはずですが、おそらくNode.jsのLTSが一番古いJavaScriptエンジンということになるのかな、と思います。本記事執筆時点でサポート中のバージョンは以下の4つです。軽くメソッドを調べたりした感じ、こんな感じかと。202x年の11月ぐらいになると、ES202xがLTSバージョンで
Twitterでは多くの質問が殺到しました。 「どうしてJavaScriptでC言語を書きたいんだ?」 これまで、JavaScriptからシステムライブラリを呼び出す方法は2種類がありました。 ・N-APIアドオンもしくはV8 C++ APIアドオンの利用。 ・emscriptenもしくはwasm-packでWASMにコンパイル。 What's wrong with N-API (napi)? どうしてN-APIではだめなのか。 N-APIはネイティブライブラリをJavaScriptから使えるようにする、ランタイムに依存しないC APIです。 BunとNode.jsはこれを実装しています。 N-API以前はV8 C++ APIを使っていましたが、Node.jsがV8を更新するたびに互換性の問題が発生する可能性がありました。 Compiling native addons breaks CI
JavaScript での非同期処理について、身近な例や具体例を交えながら詳細に解説しています。 最後には練習問題も用意しています! 頑張って書いているので、良いと思ったらコメント・いいね・ストック・共有などしてもらえると嬉しいです!! 非同期処理とは 非同期処理とは、プログラムの処理が順番に実行されず、ある処理を実行している間に他の処理を並行して実行することができる仕組みです。非同期処理では、あるタスクが完了するのを待たずに次のタスクが実行されるため、効率的に複数の処理を進めることが可能です。 (by ChatGPT) 非同期処理とは、「同期処理」の対義語で、同期処理は「プログラムの処理が順番に実行され、ある処理が終わるまで次の処理を待つ仕組み」です。 非同期処理の最大のメリットは、 「時間のかかる処理を行っている間に別の処理を行うことができる」 ことです! 身近な例では、部下への仕事の
アニメーション実装のテクニックのひとつにFLIPと呼ばれるものがあります。FLIPアニメーションは2つの状態をなめらかにつなげるテクニックで、とくに移動や拡大といった動きに有効です。FLIPアニメーションを用いると、次のようなアニメーションを実装できます。 本記事では、ライブラリに依存しないFLIPアニメーションの原理を理解し、実装する方法を紹介します。 FLIPアニメーションとは FLIPとは、First, Last, Invert, Playをまとめた造語です。これらはFLIPアニメーションの手順を説明したものになります。 First:アニメーションを開始するときの状態 Last:アニメーション終了時の状態 Invert:変化量を計算し、Lastの状態に適用してFirstの状態を復元します Play:Invert量を徐々に減らしてLastの状態に近づけていきます FLIPのおもしろい点
はじめに この記事の内容は、以下の動画でも解説しています。アニメーションでわかりやすくなっているので、ぜひ見てみてください。他にも Web に関する解説動画を投稿しているので、気になる人はチャンネル登録よろしくお願いします! Cloudflare Workers とは? Cloudflare Workers とは、一言で言うと、Cloudflare のエッジで動くサーバーレスの JavaScript 実行環境のことです。 ...と言っても、これだけだとよくわからないですよね。だから、今回は初めて触る人でもわかるように、順序だててわかりやすく解説していきます。 Cloudflare Workers 理解するための道のり Cloudflare Workers を理解するためには以下の3つのキーワードを理解することが重要です。 CDN エッジコンピューティング JavaScript 実行環境 こ
興味のない作品が検索結果に混じるのは邪魔ですよね。 私は熟女モノとか人妻モノは眼中にないのですが、なぜだか最近そっち系の作品が多くて閉口しています。 しかしFANZA側の検索システムはNOT検索できるようになっていません。そこで、検索結果から除外できそうなものを除外するブックマークレットを作ることにしました。 さいわい近年は内容の概要文をそのままタイトルにしたような作品ばかりなので、タイトルに含まれるキーワードで除外が簡単にできそうです。 「熟女」とか「五十路」のような単語を含む作品を非表示にしてしまえばよいのです。 ブックマークレット javascript: (() => { const r = /熟女|完熟|熟れ|四十路|五十路|六十路|人妻|奥様|妻|夫|母|ママ|おばさん|BBA|姑|嫁/; const q = '#list>li'; document.querySelectorA
HTMXとは https://htmx.org/ HTMXは、JavaScript を記述せずに、Ajax通信や高度なUXを実現できるライブラリ。 軽量 で 高速 で、既存のサーバーサイドのフレームワークとシームレスなやり取りができる。また、AJAX通信の発火、フォームの送信処理、DOMの更新などを既存のHTML要素を拡張するだけで可能とする。WebSocketやSSEにも対応しているので、チャットアプリなどにも適している。 2023 JavaScript Rising Starsでは、 フロントエンド・フレームワーク部門で見事2位に輝いた!(一位はReact、全部門だとshadcn/ui) 似たような機能として、Ruby on RailsのHotWireがあるらしい。 2024年はHTMXがくると言われているぐらい世界で騒がれているのだが、あまり日本では流行っていない。以下はGoogle
ES2024 / ES2023 / ES2022 / ES2021 JavaScriptの仕様は、TC39というところで決められています。 ブラウザベンダや関係者が定期的に会合を行い、様々な新機能について話し合ってどのようにするかを決めています。 ちなみに2023年9月のミーティングは東京で行われました。 ここでは2023年にFinishedになった、すなわち仕様が確定して複数のブラウザで実装がなされたproposalについて紹介してみます。 つまり、主要ブラウザでは既に使用可能です。 なお、2023年2月から2024年1月までにFinishedになったproposalがES2024と呼ばれるみたいです。 ずれているせいでややこしいですね。 年と一致させてくれ。 Finished Proposals Promise.withResolvers Promiseを外からresolve/reje
はじめに 初投稿です。 知ってたら便利になる小技が無かったのでまとめました。 「小技が知りたい...だけど検索しても出てこない...!」 そういう時に役立ちます。 比較的古いバージョンのJSでは一部の小技が使えないかもしれません。 随時追加予定です。他に小技をご存じの方はコメント欄にGO。 おことわり この記事は、あくまで"こんなやり方もあるよ"と紹介しているだけなので、何でもかんでもこれらの小技を使うと、かえってコードの可読性を下げる可能性があります。コードサイズと可読性を天秤にかけてどちらが良いかを都度確認しましょう。 記事内の間違った部分の指摘等はこの記事のコメントや編集リクエストでして下さい。 当方コードゴルファーなので、バイト数短縮小技も入れていることをご了承ください(一応該当する節には*をつけています)。 配列 配列の重複した値を削除1 const meta = ["foo",
JavaScript標準でgroupBy関数が実装されています。2023年11月現在Safari以外の主要なブラウザで実装済みで、SafariもTechnology Previewのようです。 (現在MDNの日本語の記事は古い情報のままになっており、現行と異なるので注意! →更新していただきました。ありがとうございます!) Proposal の Stage はすでに 4 / Finished なので規格として確定済みです。 基本的な使い方 よくあるgroupByです。配列(Iterable)とキーを抽出する関数の二つを指定すると、キーで配列をグループ化します。 const ret = Object.groupBy([ { name: '山田太郎', address: '東京' }, { name: '山田次郎', address: '愛知' }, { name: '山田三郎', addre
やりたいこと まずはHSP3の布教を一つまみ... 筆者は中学生の時にHSP3とともに育ちました。 HSP3は子供心を上手にくすぐったすごい言語です。 子供向け言語というと、「Scratch」のようなブロック型言語が思い浮かびますが、HSP3はゴリゴリのスクリプトベースのコンパイル式言語です。文法はBASICと類似しています。 (解答のみ提出の時代の)情報オリンピックもHSP3で解いていました。 さあ、これの何がすごいのでしょうか? 何よりも、 自分のスクリプトがグラフィカルに命宿る ところであると考えています。 これが空文字列のスクリプトを「実行」した結果です。 「実行結果」となるウィンドウが現れます。 これがハロワです こうやっていじることができます。 HSP3はWindows APIの操作を十分に簡略化したことが特徴です。(そのため、MacOSは使えない) 中3の僕はC++でウィンド
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く