並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 186件

新着順 人気順

javascript settimeout functionの検索結果1 - 40 件 / 186件

  • JavaScriptがブラウザでどのように動くのか | メルカリエンジニアリング

    実際にコードを用いてスタック領域とヒープ領域の概念を説明します。 person オブジェクトを宣言した時、JavaScript エンジンはオブジェクトの実体をヒープ領域にメモリ割り当てを行い、ヒープ領域にある実体への参照をスタック領域にメモリ割り当てを行います。 const person = { name: 'Taro', age: 24 }; 次のように新しい変数(newPerson)に再代入をすると参照がコピーされ、newPerson も person もヒープ領域に割り当てられた同じ実体に対する参照を持ちます。 const newPerson = person; Object.assign を使って新しいオブジェクトを生成するのは、参照コピーをしないための方法の一つで、よく使われる手法の1つです。 function getName(person) { return person.na

      JavaScriptがブラウザでどのように動くのか | メルカリエンジニアリング
    • ブラウザ上でデバッグするときに使えるテクニック

      ウェブ上でJavaScriptを実行してバグが発生した場合、ブラウザに内蔵されている開発者ツールを使ってデバッグすることがよくあります。そうしたブラウザでのデバッグにおいて役立つテクニックをNetflixでフロントエンドの開発に携わっているアラン・ノルバウアーさんがまとめています。 67 Weird Debugging Tricks Your Browser Doesn't Want You to Know | Alan Norbauer https://alan.norbauer.com/articles/browser-debugging-tricks ◆高度な条件付きブレークポイント 開発者ツールの「ソース」タブにはデバッガーが用意されており、JavaScriptの任意の行にブレークポイントを設定することで実行を一時停止して変数やコールスタックの中身を確認できます。ブレークポイントを

        ブラウザ上でデバッグするときに使えるテクニック
      • setTimeout を完璧に理解する

        setTimeout は、指定された時間以降に指定されたコードを実行する JavaScript の API です。ブラウザでも Node.js でも広く使われているのですが、実装はまちまちで、色々と特殊な条件も多く、挙動を完璧に理解している人は少ないと思います。この記事では、そんな setTimeout を可能な限り深堀りしてみようと思います。 先に書いておきますが、ものすごくニッチで細かい話ばかり並びます。突然私が、ただ純粋に setTimeout について調べたくなったので、その結果をまとめただけのものです。普通に開発している人には必要のない情報が多くなるでしょう。この記事は基礎から setTimeout を学ぼう、という方には全然向かないと思います。 また、JavaScript のイベントループについてある程度理解していることを前提とします。その詳しい理解には、@PADAone さん

        • JavaScript で then を使うのは避けよう(await / async の初級者まとめ)

          JavaScript において、特に苦手とする人が多い印象のある Promise ですが、await と async の文法が導入されたことで、Promise の仕様を深く理解しなくても非同期処理を自然に書けるようになってきたのではないかと思います。 極論ですが、JavaScript の非同期処理は async await new Promise のみで、(ほぼ)全て表現可能です。特別な理由がない限り then を使わないようにしましょう、ということを周知するのがこの記事の目的です。 なお本記事では Promise の rejected の状態についてほとんど解説しておりません。基本を理解したら、別記事でぜひ学んでみてください。 Promise とは? Promise は、少し乱暴に説明すると「実行が終わっていないかもしれない何らかの関数」を包んだオブジェクトです。 普通の関数とは違って、

          • 実装例から見る React のテストの書き方 - Cybozu Inside Out | サイボウズエンジニアのブログ

            2024/04/17: 更新 内容を更新した記事を書きましたので、よかったらこちらも併せて、ご覧ください。 zenn.dev こんにちは!フロントエンドエキスパートチームの@nus3_です。 kintone のフロントエンド刷新プロジェクト(フロリア)では、品質を保ったまま開発を加速させるためにフロントエンドのテストを積極的に行っています。 今回はそんなフロントエンドのテストの実装例をいくつか紹介します。この記事がフロントエンドのテストを行う上での参考になれば幸いです。 テストに使用する主なパッケージ コンポーネントのテスト 補足: Testing Library の記法をチェックしてくれるeslint-plugin-testing-library カスタムフックのテスト 補足: React v18 では @testing-library/react の renderHook を使う 参考

              実装例から見る React のテストの書き方 - Cybozu Inside Out | サイボウズエンジニアのブログ
            • Remix 3 発表まとめ - React を捨て、Web標準で新しい世界へ

              はじめに 2025年10月10日、カナダのトロントで開催されたイベント "Remix Jam 2025" で Ryan Florence と Michael Jackson が Remix 3 を発表しました。このセッションは、React Router の生みの親たちが、なぜ React から離れ、独自のフレームワークを作ることにしたのか、その理由と新しいビジョンを語った歴史的な発表です。 本記事では、1時間47分に及ぶセッションの内容を詳しく解説します。 なぜ Remix 3 を作るのか 💡 動画で確認する (3:17:30~) React への感謝と決別 Michael Jackson と Ryan Florence は、React に対して深い敬意を持っています。React は彼らのキャリアを変え、Web 開発の考え方を一変させました。React Router を10年以上メンテナ

                Remix 3 発表まとめ - React を捨て、Web標準で新しい世界へ
              • イベントループと TypeScript の型から理解する非同期処理

                この本は、ブルーベリー本の 8 章からインスパイアされて、 TS の型が示す情報から Promise というものを理解してみる、というアプローチで書いたJSの非同期処理の解説です。 これらの資料と合わせて読むことを推奨します。 JSのイベントループのイメージを掴む JSでは中々意識することが少ないですが、正しく理解するには OS レベルのスレッドの視点で考え始める必要があります。 ブラウザや Node.js では一つのスクリプト実行単位を1つのスレッドに割り当てます。それをメインスレッドと呼んだり、ブラウザだったら UI スレッドと呼んだりします。 例えばブラウザでは、これは秒間60回、つまり 16.6ms ごとにループを呼び出します。(node だったらこれがもっと短いです) 仮に setTimeout の実装がなかったとして、それ相当の擬似コードを書くのを試みます。 let handl

                  イベントループと TypeScript の型から理解する非同期処理
                • TypeScriptが仕事で使えるレベルに到達するためのガイド - Python転職初心者向けエンジニアリングブログ

                  TypeScriptが仕事で使えるレベルになるためには、単に基本的な文法や構文を理解するだけでなく、実際のプロジェクトやチーム開発でどのように活用するか、スケーラビリティや保守性を考慮しながらコードを書く能力が求められます。この記事では、TypeScriptを実務で使うために必要な基本から、少し踏み込んだ中級レベルの知識を、コード例を交えながら丁寧に解説します。 TypeScriptとは TypeScriptは、JavaScriptのスーパーセットで、JavaScriptに静的な型を追加した言語です。静的型付けとは、変数や関数にあらかじめ「このデータはこの型でなければならない」というルールを設定することです。このルールに基づいて、開発者が予想しない動作やバグを防ぐ手助けをしてくれます。 JavaScript自体は非常に柔軟で、型に縛られない自由な書き方ができますが、それが逆に大きなバグを生

                    TypeScriptが仕事で使えるレベルに到達するためのガイド - Python転職初心者向けエンジニアリングブログ
                  • Chromeに入るRecorder機能の利用と注意点 - 虎の穴ラボ技術ブログ

                    こんにちは。虎の穴ラボのH.Hです。 今回は先日発表されたChromeの開発中の新機能であるRecorder機能について使用方法や利用する際の注意点などをまとめました。 Recoder機能とは ブラウザのChrome97で追加される予定の機能で、ブラウザの画面上で操作した記録を取得してくれる機能になります。 この記事を書いている2021年11月17日では一般に提供されているChromeの最新版は96となり、開発中の「Chrome Dev」もしくは「Chrome Canary」でRecorder機能を使用することができます。 利用している時の様子はChromeの開発者向けのページに公開されています。 developer.chrome.com 主な機能は以下の通りです。 ・操作の記録及び再実行(リプレイ)できる ・再実行時にパフォーマンスの記録・確認できる ・記録した内容の編集ができる ・操作

                      Chromeに入るRecorder機能の利用と注意点 - 虎の穴ラボ技術ブログ
                    • WebSockets vs Server-Sent-Events vs Long-Polling vs WebRTC vs WebTransport | RxDB - JavaScript Database

                      WebSockets vs Server-Sent-Events vs Long-Polling vs WebRTC vs WebTransport For modern real-time web applications, the ability to send events from the server to the client is indispensable. This necessity has led to the development of several methods over the years, each with its own set of advantages and drawbacks. Initially, long-polling was the only option available. It was then succeeded by Web

                        WebSockets vs Server-Sent-Events vs Long-Polling vs WebRTC vs WebTransport | RxDB - JavaScript Database
                      • 【AI駆動開発】Cursorを使いこなして1ヶ月でプログラミング学習サイトを作ったのでノウハウを伝えたい - Qiita

                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは、とまだです。 皆さん、最近話題の AI 駆動開発、試していますか? 私は普段フリーランスの Web エンジニアとして活動しており、そちらでは AI エージェントをフル活用した開発を行っています。 そして業務だけでなく、個人開発の中でも AI を活用して、開発効率を劇的に向上させています。 そんな中、個人開発として Cursor と Claude をフル活用して、プログラミング学習サイトを たった 1 ヶ月で作り切る ことができました。 今回作ったのは「Learning Next」というサイトで、プログラミング学習用のテキスト

                        • JavaScriptを事前コンパイルする。不可能と言われた挑戦に挑む開発者。|直也テック

                          今回はポッドキャスト「devtools.fm」に出演したOliver Medhurst氏の回をご紹介します。彼はPorffor(ポーファー)というプロジェクトの作者です。Porfforは「JavaScriptをWebAssemblyへと事前にコンパイルする(Ahead of Time Compiler、AOTコンパイラ)」という、多くの人が「不可能だ」と考えてきた仕組みに挑む研究プロジェクトです。 この記事では動画の流れに沿って、Porfforとは何か、なぜ事前コンパイルが難しいとされてきたのか、そしてその技術的な仕組みや将来像までを順を追って整理していきます。 Oliver Medhurst氏とは何者かOliver Medhurst氏冒頭、ホストのAndrew氏とJustin氏は、Porfforという「JavaScriptの事前コンパイラ」の存在に驚いたと語り、まずはOliver氏の経歴

                            JavaScriptを事前コンパイルする。不可能と言われた挑戦に挑む開発者。|直也テック
                          • 【入門】『スーパーマリオ』で学ぶ、JavaScriptの非同期処理

                            はじめに 今回の記事では、JavaScriptの学習における最大の鬼門の一つ「非同期処理」を、任天堂のゲーム『スーパーマリオ』を具体例に、初心者でもわかりやすく解説する。 対象とする読者 プログラミング初心者 非同期処理が全くわからない初心者 タイトルで気になったひと 同期処理と非同期処理 まずは、「同期」と「非同期」のそれぞれの定義や違いについて解説する。同期処理とは、コードを上から下まで順番に処理することを意味する。一方で、非同期処理はある処理が終わるのを待たずに、別の処理を実行することを意味する。 参考までに、「分かりそう」で「分からない」でも「わかった」気になれるIT用語辞典では、以下のように説明されている。 非同期(読:ヒドウキ 英:asynchronous)とは相手との足並みを揃えないこと。あるいは、相手の反応を待たないで、ひょいひょい行動すること。 同期は何かと何かを「同じに

                              【入門】『スーパーマリオ』で学ぶ、JavaScriptの非同期処理
                            • JavaScriptのforEachでawaitが効かない理由 - Qiita

                              背景 JavaScriptでは forEach という配列から要素を取り出して反復処理できる関数があります。 前の記事 JavaScriptのforEach内でbreakができない理由【備忘録】 では、 forEach の中では break が使えず、途中でループを抜けることができない理由についてまとめました。 今回はその続きとして、forEach の内部で await を使った場合に、非同期処理の完了を待たずに次の処理へ進んでしまう、という挙動について理由を調べてみました。 forEach内でawaitしてみる forEach の中で await して得られた値を配列に追加し、 forEach の直後に配列を console.log で出力する例で確認します。 for文の感覚でいえば、イテレーション中の await で都度処理を待ってくれるイメージなので、全ての要素への処理が終わったら配

                              • 主なNode.js独自API

                                // CommonJS Modules の場合 const fs = require("fs"); const fs = require("node:fs"); // ES Modules の場合 import fs from "fs"; import fs from "node:fs"; process のように、グローバル変数としても組み込みモジュールとしても提供されているAPIもあります。 global globalThisの別名です。Webブラウザでは window と self がglobalThisの別名として定義されていますが、Node.jsには window や self はなく、かわりに global が定義されています。 Buffer ArrayBuffer, TypedArray (Uint8Arrayなど), DataView はJavaScriptの標準機能です。

                                  主なNode.js独自API
                                • Modern Node.js Patterns for 2025

                                  Node.js has undergone a remarkable transformation since its early days. If you’ve been writing Node.js for several years, you’ve likely witnessed this evolution firsthand—from the callback-heavy, CommonJS-dominated landscape to today’s clean, standards-based development experience. The changes aren’t just cosmetic; they represent a fundamental shift in how we approach server-side JavaScript develo

                                  • はてなアイコンの裏側の紹介 CloudflareとHonoX - Hatena Developer Blog

                                    先日、はてラボで「はてなアイコン」をリリースしました。普段はスマートフォンアプリを書いていることが多い id:kouki_dan です。 labo.hatenastaff.com サービスの紹介はリリース時のエントリを参照してください。このエントリでは技術的な裏側の紹介をしていきます! Cloudflareスタックを試したかった 2年くらい前に、Cloudflare D1などが発表されて盛り上がっていた頃、Cloudflareを使ってなんか作りたいな〜と思っていました。はてなの社内には自由研究用のリソースとして、AWS, Google Cloudをはじめ、様々なクラウドサービスを特段の申請不要でエンジニアが自由に試せる環境が用意されています。もちろん費用は会社が出してくれて、常識的な範囲で使ってねということになっています。2年くらい前にCloudflareも追加してもらい、社内で自由にCl

                                      はてなアイコンの裏側の紹介 CloudflareとHonoX - Hatena Developer Blog
                                    • Optimize long tasks  |  web.dev

                                      Published: September 30, 2022, Last updated: December 19, 2024 Common advice for keeping JavaScript apps fast tends to boil down to the following advice: "Don't block the main thread." "Break up your long tasks." This is great advice, but what work does it involve? Shipping less JavaScript is good, but does that automatically equate to more responsive user interfaces? Maybe, but maybe not. To unde

                                        Optimize long tasks  |  web.dev
                                      • BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG

                                        こんにちは、株式会社ZOZOで25卒の内定者アルバイトをしている村井です。この記事では業務で取り組んでいる、BigQueryで使うSQLのリンターの作成方法について紹介します。 目次 目次 課題と解決策 課題 解決策 BigQueryのアンチパターン認識ツール ミニマムな使い方 日本語がSQL内に含まれている際の問題 アンチパターンを定義する リンターとしてBigQueryのアンチパターン認識ツールを使用する際に生じる課題と解決策 構成 APIサーバ化 Chrome拡張 動作例 まとめ 課題と解決策 課題 社内では様々なチームがSQLを書いており、動作はするものの良くない書き方をしている場合があります。そういった構文を検知して、前もって修正する必要があります。 解決策 BigQueryのコンソールで入力されたSQLの不正構文を検知、修正案を提示できるようにしました。 BigQueryのアン

                                          BigQueryのアンチパターン認識ツールで独自のSQLリンターを開発しました - ZOZO TECH BLOG
                                        • JavaScriptの基礎と向き合う - iimon TECH BLOG

                                          よろしくお願いします!エンジニアのideです。 こちらはアドベントカレンダー23日目の記事になります! 今年は体のあちこちに痛みを感じることが多かったので、来年こそは健康に過ごせる一年になるといいなと願っています。 さて、今回は今年やってきたことを振り返るのもいい機会だなと思い、特に触れる機会が多かったJavaScriptについてまとめてみることにしました。 結果的に基本的な内容が中心となりましたが、改めて理解を深める良いきっかけになったので、これはこれでよしとしています! それではよろしくお願いいたします! [目次] テンプレート文字列 スプレッド構文 分割代入 プロパティ名の短縮記法 オプショナルチェーン nullish(??)とfalsy(||)チェック ディープコピー アロー関数 Promise async/await forEachの中でasync/awaitが効かない おわりに

                                            JavaScriptの基礎と向き合う - iimon TECH BLOG
                                          • JavaScript Primer 4.0.0: ECMAScript 2022に対応したJS本

                                            JavaScript Primer(jsprimer.net)が、ECMAScript 2022(ES2022)に対応しました。 リリースノート: Release v4.0.0: ES2022 · asciidwango/js-primer これまでのjsprimer ECMAScriptの仕様書は毎年更新されるので、それに合わせてjsprimerも更新しています。 1.0.0(ES2019): JavaScript Primerを出版しました!/JavaScript Primerはなぜ書かれたのか? 2.0.0(ES2020): JavaScript Primer 2.0 - ECMAScript 2020に対応した入門書を公開しました 3.0.0(ES2021): ES2021に対応したJavaScript Primer 3.0を公開しました - JavaScript入門 今回のアップ

                                              JavaScript Primer 4.0.0: ECMAScript 2022に対応したJS本
                                            • ゆっくり復習するHTTPー WireSharkで確認するHTTP/1.1〜HTTP/3

                                              目的 Webアプリケーションのフロントやバックエンドの開発でHTTPを使用したプログラムを実装している人は多いかと思います。 しかしながら、実際、そのデータがどう流れているかを具体的に意識する機会は少ないです。 本記事の目的はHTTP/1.1→HTTP/2→HTTP/3で、送受信されるデータがどのように変わったかを確認することを目的とします。 以下のケースで、データがどのように流れているかをWiresharkを使用して確認します。 HTTP/1.1 によるブラウザとサーバー間のデータ TLS1.3+HTTP/1.1 によるブラウザとサーバー間のデータ HTTP/2 によるブラウザとサーバー間のデータ HTTP/3 によるブラウザとサーバー間のデータ 今回は再送時やエラー時の検証などは範囲外とし、各ケースにおいて簡単なデータの送受信でどのような違いがあるかを確認するのにとどめます。 また、実

                                                ゆっくり復習するHTTPー WireSharkで確認するHTTP/1.1〜HTTP/3
                                              • canvasで大量の円がランダムに動くパーティクルを実装してみよう! | 株式会社LIG(リグ)|DX支援・システム開発・Web制作

                                                こんにちは、フロントエンドエンジニアのぜんちゃんです。 最近はアニメーション表現を増やすために、canvasの勉強を始めました。そこで、今回はcanvasやJavaScriptの基本技術を使って、円がランダムに動くパーティクルアニメーションを実装したいと思います。 今回作るアニメーションはこちらです。 円を作成・描画する canvas要素を作成し、そのcanvas内に円を作っていきます。 まずは一つだけ作りたいと思います。 <canvas id="canvas"></canvas> // キャンバス要素を取得 const canvas = document.getElementById('canvas'); // キャンパスに描画するコンテキストを取得 const ctx = canvas.getContext('2d'); // キャンバスサイズをwindowサイズに canvas.wi

                                                  canvasで大量の円がランダムに動くパーティクルを実装してみよう! | 株式会社LIG(リグ)|DX支援・システム開発・Web制作
                                                • 動画で分かる!ブラウザと Node.js の Event Loop 解説

                                                  Event Loopってみなさん聞いたことありますか? 「うん、なんか聞いたことありますが、よくわからないな・・・」や「分かりそうで、分からないな・・・」って思ってる方がいますかね? 長文ではありますが、Event Loop というものを改めて理解してみましましょう! まずこのコードの実行結果を考えてみましょう。 console.log('1') setTimeout(function callback(){ console.log('2') }, 1000) new Promise((resolve, reject) => { console.log('3') resolve() }) .then(res => { console.log('4'); }) console.log('5') 答えを分かりますでしょうか?正解はこの後記事内で公開します。 JavaScript 実行の仕組み

                                                    動画で分かる!ブラウザと Node.js の Event Loop 解説
                                                  • オープンソースのnpmパッケージ「node-ipc」にロシア在住の開発者を標的にした悪意のあるコードがメンテナーによって追加される

                                                    オープンソースで開発される、ウェブアプリのUI構築用JavaScriptフレームワーク「Vue.js」のコードに、ロシアとベラルーシに在住する開発者を標的とした悪意のあるコードが追加されたと、開発者向けセキュリティプラットフォームのSnykが発表しました。メンテナーの1人がロシアのウクライナ侵攻に対する抗議行為として、問題のコードを追加したことがわかっています。 Alert: peacenotwar module sabotages npm developers in the node-ipc package to protest the invasion of Ukraine | Snyk https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/ Sabotage: Code added

                                                      オープンソースのnpmパッケージ「node-ipc」にロシア在住の開発者を標的にした悪意のあるコードがメンテナーによって追加される
                                                    • htmz - a low power tool for html

                                                      =>htmz> a low power tool for html htmz is a minimalist HTML microframework for creating interactive and modular web user interfaces with the familiar simplicity of plain HTML. [GitHub] plain🍦 Use straight up HTML. No supersets. No hz- ng- hx- v- w- x-; no special attributes. No DSLs. No <custom-elements>. Just vanilla HTML. lightweight🪶 166 bytes in total. Zero dependencies. Zero JS bundles to l

                                                      • [アップデート]AWS Lambdaでストリーミングな応答が可能になりました | DevelopersIO

                                                        初めに 昨日のアップデートでAWS Lambdaは実行結果の返却値を一括の応答ではなくストリーミングな徐々に応答するようなことが可能となりました。 いざ日本語に直そうとすると微妙に難しいタイトルで実際の公式の翻訳がどうなるか次第では少しタイトルを調整するかもしれません。 これまでの方式ではLambdaの機能としては処理完了まで返却値を返すことができず、そういった機能が必要な場合はWebSocket等別の手段をユーザ側で実装する必要がありました。 今回のアップデートではTransfer-Encoding: chunked形式による返却に対応しHTTP/1.1の仕様の範囲内で徐々に値を返却できるようになりました。 またこの方式は応答サイズの上限が従来の6MBではなく20MBまでの対応となるためより大きなレスポンスを返すことができるようです。 Configuring a Lambda funct

                                                          [アップデート]AWS Lambdaでストリーミングな応答が可能になりました | DevelopersIO
                                                        • 第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp

                                                          [速習] Puppeteer ~ヘッドレスChromeでテスト&スクレイピング 第2章ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント 第2章では、実際にヘッドレスChromeを自動化するうえで必要となる、最新のJavaScriptの構文やPuppeteerのAPIについて解説します。 進化し続けるJavaScript PuppeteerのAPIを解説する前に、第1章の冒頭で掲載したサンプルコードを見返してみましょう。もしかすると、中にはまったく見慣れない構文が見つかったかもしれません。 const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await b

                                                            第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp
                                                          • Next.jsのコンパイラから知るServer Actionsの完全解析 ~セキュリティ上の注意点も含めて~ - カミナシ エンジニアブログ

                                                            はじめに StatHackカンパニーの渡邉です。 私の普段の取り組みをこちらで紹介しているのでこちらもどうぞ。 note.kaminashi.jp 私たちKaminashiでは、さまざまなプロダクトにNext.jsを採用し始めています。 今回のブログではNext.jsの最も特徴的な機能の一つであるServer Actionsに関してフォーカスし、それがどういう仕組みで動いているのかコンパイラのソースコードを確認しながら解説し、 最後に実装上の注意点について述べます。 特にServer Actionsの具体的な中身の解説に関してはヘビーなので、実装上の注意点だけ見てもらうだけでも良いかもしれないです。 それではやっていきましょう。 Server Actionsとは? Server ActionsとはNext.js v14から正式にリリースされた機能で、従来フロントエンドのために記述していたR

                                                              Next.jsのコンパイラから知るServer Actionsの完全解析 ~セキュリティ上の注意点も含めて~ - カミナシ エンジニアブログ
                                                            • 【JS体操】第2問「画像の横長具合を比較しよう」〜正攻法&ハック部門の解説〜 - KAYAC Engineers' Blog

                                                              こんにちは! カヤック面白プロデュース事業部のおばらです。 普段は受託案件のデザイン・フロントエンド開発などを担当しています。 さて、『JS体操』第2問 いかがでしたか? 今回初めての方々 第1問に引き続きの方々 複数のアプローチで何通りも回答してくださった方々 普段業務で JavaScript をバリバリ書いているであろう方々 JavaScript を学んでいる学生の方々 などたくさんの方々が挑戦してくださいました。 とても嬉しいです。ありがとうございます! 『JS体操』とは? 『JS体操』とはカヤックが主催する JavaScript のコードゴルフ大会です。 もともとは社内の勉強会として始めた施策です。 その詳細は以下のブログ記事を御覧ください! techblog.kayac.com 第2問の詳細はこちら https://hubspot.kayac.com/js-taiso-002 も

                                                                【JS体操】第2問「画像の横長具合を比較しよう」〜正攻法&ハック部門の解説〜 - KAYAC Engineers' Blog
                                                              • JavaScriptのWeb Audio APIを使ってジングルベルを演奏してみよう - iimon TECH BLOG

                                                                こんにちは!iimonでエンジニアをしている、でっさんです。 本記事はiimon Advent Calendar 2025 14日目の記事となります! 今年はダイエットに挑戦したものの、チートデイを設けすぎてリバウンドしてしまいました。 来年は、みなさんの助言を真摯に受け止めていこうと思っています。 さて、今年のアドベントカレンダーのテーマですが、 社内の雑談で「JavaScript だけで音を鳴らせるよ」という話を聞いたのがきっかけで、 JavaScriptのWeb Audio APIに興味を持ちました。 せっかくなので、ただ調べるだけではなく 実際に何かを演奏するところまで作ってみようと思い、 この季節にぴったりのジングルベルを演奏することをゴールにしました。 この記事では、Web Audio API を使って以下を実装していきます。 4種類の波形(sine / square / sa

                                                                  JavaScriptのWeb Audio APIを使ってジングルベルを演奏してみよう - iimon TECH BLOG
                                                                • setIntervalの第2引数に気を付けろというだけの話

                                                                  この記事はtraP Advent Calendar 2023 14日目の記事です。 はじめに こんにちは。19Bの@kegraという者です。いつもゲーム開発とかWeb開発あたりをやってます。 今日はJavaScript(TypeScript)で最近やらかした割と初歩的なデカいミスを紹介したいと思います。 setInterval()による定期ポーリング 僕は今あるシステムを作っており、そのシステムではクライアントサイドが定期的にサーバーのAPIを叩いて情報を取ってくる感じになっています。いわゆるポーリングです。 クライアントサイドはWebフロントエンドで作っており、僕はこの実装でsetInterval()を使っていました。 setInterval(() => { updateData(); }, 5000); // 5秒おきにポーリング そこで本当にしょうもないのですが、第2引数を書き忘れて

                                                                    setIntervalの第2引数に気を付けろというだけの話
                                                                  • Proプランでも使えるようになった「GitHub Copilot coding agent」を試してみた - Qiita

                                                                    はじめに X のタイムラインに、以下の「GitHub Copilot coding agent が Proプランでも使えるようになった」という情報が流れてきたので、さっそく試してみました。 今回試した内容のレベル感は、 「動作確認くらいの内容で、一通りの手順を体験してみた」 というものになります。 ちなみに Pro+プランなどだと、以下の 5月のタイミングから利用可能になっていたものです。 それと、Proプランで GitHub Copilot coding agent を使えるようになったタイミングは、自分が冒頭のポストを見たタイミングよりもさらに前からだったようです。 やってみたこと 作ってもらったもの 最初に、GitHub Copilot coding agent に作ってもらったものを掲載してみます。 内容は p5.js を使った Canvas への描画(ブラウザで動作するもの)です

                                                                    • React Server Componentsを理解する | POSTD

                                                                      React Server Componentsを理解する React Server Components(RSC)の登場により、Reactエコシステムにおけるサーバーレンダリングの重要性が高まりました。RSCを使用することで、デベロッパーは一部のコンポーネントをサーバー側でレンダリングしつつ、抽象化によりクライアントとサーバーの隔たりを感じさせないユーザビリティを実現することができます。Client ComponentsとServer Componentsをコード内に混在させることで、すべてのコードが1カ所で実行されているように見せることができます。 しかし、抽象化には常にコストが伴います。そのコストとはどのようなものでしょうか。RSCはいつ「使える」のでしょうか。バンドルサイズが小さくなると、帯域幅も狭まるのでしょうか。RSCを「使うべき」ときはいつでしょうか。RSCを適切に使う上でデベ

                                                                        React Server Componentsを理解する | POSTD
                                                                      • V8 JavaScript engineで寒い冬を暖かく過ごしたい - iimon TECH BLOG

                                                                        はじめに v8の概略 JavaScriptの処理ってどうなっているの? スタック領域とヒープ領域 コールスタック タスクキューとマイクロタスクキュー イベントループ v8で遊ぶ まとめ Appendix さいごに 参考 はじめに こんにちは! 株式会社iimonでエンジニアをしている「ひが」です! 本記事は iimonアドベントカレンダー5日目の記事です! 先日TSKaigi Hokuriku 2025で登壇してきました。 (唐突にすみません、、) https://hokuriku.tskaigi.org/talks/18 人生初の登壇でめちゃくちゃ緊張しましたがなんとかやり切って一命を取りとめました。 資料は下記で公開しているので、興味のある方はぜひ見ていってください!(宣伝です笑) 「denoとtypescriptの関係について改めて考えてみる」 https://speakerdeck

                                                                          V8 JavaScript engineで寒い冬を暖かく過ごしたい - iimon TECH BLOG
                                                                        • Server Actions の同時実行制御と画面の状態更新

                                                                          2024 年 5 月現在だと Next.js のドキュメントには明示的な記載がないが、「同時に実行可能な Server Action は常に1つだけ」という件について。 実は自分もこれをちゃんと認識しておらず、先日会社の先輩に教わって初めて知ったので、試したことなどを書き残しておく。 Next.js の場合、App Router (Router Reducer) によって、Server Action の実行が直列化 (キューイング) されるようになっている。 このキューイングの挙動を考慮すると、以下のような呼び出し方は危ういコードとなる。 "use client"; import { useState } from "react"; import { increment } from "./actions"; export default function Page() { const [

                                                                            Server Actions の同時実行制御と画面の状態更新
                                                                          • 悪名高きスクロール妨害広告を解析する - Qiita

                                                                            <!-- Generated by まとめくす (https://2mtmex.com/) --> <div class="article_mid_v2"> <div id="article_mid_v2"> <script type="text/javascript"> (function(){ var ua = window.navigator.userAgent; var android_reg = /android/i; var android_rand = Math.floor(Math.random() * (100)) + 1; var ios_rand = Math.floor(Math.random() * (115)) + 1; if (ua.match(android_reg)) { if (100 >= android_rand) { var elements =

                                                                              悪名高きスクロール妨害広告を解析する - Qiita
                                                                            • 歴史を感じつつ、クロージャで遊んでみた(JavaScript編) - iimon TECH BLOG

                                                                              こんにちは!株式会社iimonでフロントエンジニアをしている「ひが」です! 本記事はアドベントカレンダー19日目の記事になります! 先日夢で「メリークロージャマス!!!」と叫んでスベる夢を見ました。 冬だからか、みなさん冷たかったです(現実では暖かいです) そのようなこともあり、思い切って記事にしてみようと思いました! どうか、暖かい目で見守っていただけると嬉しく思います!! 本題 本題ですが、みなさんはクロージャをご存知でしょうか。 MDNよりお言葉を借りると クロージャは、組み合わされた(囲まれた)関数と、その周囲の状態(レキシカル環境)への参照の組み合わせ です! 初見だと何言ってるかよくわからないですよね。 本記事でざっくり掘っていきますので、是非一緒に見ていただければ幸いです! ※ 本記事は基本的にMDNの内容に沿う形で進めつつ、たまに脱線したり小ネタを挟んだりします ※ コード

                                                                                歴史を感じつつ、クロージャで遊んでみた(JavaScript編) - iimon TECH BLOG
                                                                              • 【KARAKURI LM 10本ノック】番外編: Chrome内蔵のローカルLLM (Gemini Nano)で「どこでもCopilot」を作ってみた

                                                                                【KARAKURI LM 10本ノック】番外編: Chrome内蔵のローカルLLM (Gemini Nano)で「どこでもCopilot」を作ってみた 本記事中で紹介しているユーザスクリプト「どこでもCopilot」。ChromeビルトインのLLMで、任意のフォーム上で文章の続きをサジェスト。外部通信なし、無料で動作こんにちは、カラクリR&Dの吉田です。今回は、10本ノック「番外編」ということで、Google Chrome の最新版に先日(2024年8月22日)組み込まれたローカルLLMの話をします。 本記事の概要2024年8月22日に公開された Google Chrome の「バージョン128」にローカルLLM として Gemini Nano が組み込まれました。このLLMは、フロントエンド JavaScript から手軽に呼び出し可能で、ローカルLLMなので外部への通信は発生しません。

                                                                                  【KARAKURI LM 10本ノック】番外編: Chrome内蔵のローカルLLM (Gemini Nano)で「どこでもCopilot」を作ってみた
                                                                                • Patterns for Reactivity with Modern Vanilla JavaScript – Frontend Masters Blog

                                                                                  “Reactivity” is how systems react to changes in data. There are many types of reactivity, but for this article, reactivity is when data changes, you do things. Reactivity Patterns are Core to Web Development We handle a lot with JavaScript in websites and web apps since the browser is an entirely asynchronous environment. We must respond to user inputs, communicate with servers, log, perform, etc.

                                                                                    Patterns for Reactivity with Modern Vanilla JavaScript – Frontend Masters Blog