並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 293件

新着順 人気順

ECMASCriptの検索結果41 - 80 件 / 293件

  • 書いた JavaScript をそのまま動かすフロントエンド開発の未来のために必要なもの

    大きめのテーマです。もしかしたら「うちでは書いた JS をそのまま配信してるぜ〜」って人もいるかもしれないでが。 最近の Web フロントエンド開発では、書いた JavaScript をそのまま動かさないことが多い 最近のフロントエンド開発ではエンジニアが書いた JavaScript をそのままブラウザで動かすことはほとんどないかもしれません。 例として最近流行のフレームワークを考えてみましょう。Next.js や Remix、Nuxt.js など、いずれも内部的にトランスパイラやモジュールバンドラを使い、エンジニアが書いた JavaScript を別の形へと変換してからユーザーのブラウザで動かすような仕組みになっています。 一昔前だと Next.js のようなフレームワークが今ほど発展していなかったこともあり、webpack や Babel を直接使っていたと思いますが、それも同じです。

      書いた JavaScript をそのまま動かすフロントエンド開発の未来のために必要なもの
    • JavaScriptの参照レコードとthisバインディング

      JavaScriptの仕様には「参照レコード」という概念があります。参照を意識することで、JavaScriptにおけるメソッド呼び出しの理解と左辺式の評価順序の理解を同時に深めることができます。本稿ではこの「参照レコード」の動機と詳細の説明を試みます。 ※ 本記事ではECMAScriptの規格で「参照レコード」と呼ばれている概念を説明します。JavaScriptのオブジェクトは参照渡しのような使い方ができますが、これは本稿で説明する「参照」とは少しだけ異なります。 参照レコードの目的 JavaScriptにおける参照レコードは以下の2つの目的で存在しています。 左辺式の中間評価結果を表現するため。 メソッドのレシーバーを決定するため。 左辺式の中間評価結果とは たとえば a[f()] += 2; というコードを考えます。 function f() { console.log("f()");

        JavaScriptの参照レコードとthisバインディング
      • 【追記あり】ES2022 Array#at がちょっとおかしい #fix_ecmascript_at - Qiita

        既に Stage 4 になっているので諦めていたんですが、流石に見逃せないかなと思ったので TC39 の Discourse にトピックをたててみました。意見がある方はこちらにお願いします。 https://es.discourse.group/t/fix-at/983 議論に伴って私が実際に欲しかったものをモジュールにして公開してみました。 https://github.com/petamoriken/safe-at それといまいちユーザーからの声が伝わっていない感じがしたのでハッシュタグ #fix_ecmascript_at を用意してみました。協力をよろしくおねがいします。 String#char{At, CodeAt} という存在を忘れてたんですが、この似た名前のメソッドたちが引数を整数に丸めるのに String#at が丸めないのはたしかに変だということに気づいてしまったので、自

          【追記あり】ES2022 Array#at がちょっとおかしい #fix_ecmascript_at - Qiita
        • サーバーサイドエンジニアがじっくり学ぶVue.jsチュートリアル【1. Installation】 | DevelopersIO

          こんにちは。DA事業本部の春田です。 普段の業務では全く扱わないフロントエンドの世界に飛び込んでみたいと思います。最近3系が登場しましたがまだ情報が少ないので、2系のチュートリアルを進めていきます。サンドウィッチマンでいう「ちょっと何言ってるかわからない」ポイントは、その都度調べていきます。英語版の公式ドキュメントがベースです。 今回は、一番最初のInstallationです。 はじめに 互換性の注意 最初のセクションは「互換性の注意」についてです。ECMAScript 5とun-shimmableが、早速「ちょっと何言ってるかわからない」ポイントだったので調べてみました。 Vue.js uses ECMAScript 5 features that are un-shimmable in IE8 ECMAScript5は2009年にリリースされたJavaScriptの標準仕様のことで、プ

            サーバーサイドエンジニアがじっくり学ぶVue.jsチュートリアル【1. Installation】 | DevelopersIO
          • 最新のJavaScript: ES2016からES2019までの知るべき全て - Qiita

            訳者前書き 本記事は、InspiredWebDevの原文記事(英語)について、自身の理解を深める為に日本語翻訳したものです。 はじめに JavaScriptは絶えず進化している言語であり、過去数年で多くの新機能がECMAScriptの仕様に追加されました。 この記事は、Alberto氏の著書「最新のJavaScriptの完全ガイド(Complete Guide to Modern JavaScript)」の抜粋です。 同書では、ES2016、ES2017、ES2018、ES2019の新規追加要素について説明しています。 記事の最後に、すべてを要約したチートシートをダウンロードするためのリンクがあります。 1. ES2016の新機能 ES2016で導入された2つの新機能について説明します。 Array.prototype.includes() 指数演算子(べき乗) 2. Array.prot

              最新のJavaScript: ES2016からES2019までの知るべき全て - Qiita
            • クラスメソッドにおける Web フロントエンド勉強会 | DevelopersIO

              クラスメソッドでは、毎週フロントエンド技術に関する勉強会を開催しています。主に技術的な情報と、やっていることの共有を目的としています。 2021 年の年明けから開始して、 4 ヶ月継続しています。 GW という節目を迎えたので、これまでやったことをまとめてみます。 State of JS 2020 最初はどういったレベルの方が参加されるのかがわからなかったので、現時点の復習にちょうど良いということで、 State of JS の 2020 年度版をみんなで眺める時間としていました。 次の認識合わせができたので、大変有意義だったと思います。 ECMAScript が tc39 によって毎年更新されること よく使われている技術 各分野における選択肢 JSer.info 参加者のベースラインができたところで、毎週話すことのトピックを入手する先として、 JSer.info を使用しています。 RS

                クラスメソッドにおける Web フロントエンド勉強会 | DevelopersIO
              • Denoのライアン・ダール氏「親愛なるオラクル殿、どうかJavaScriptの商標を手放して」と呼びかけ

                主要なJavaScriptランタイムであるNode.jsの作者であり、現在もDenoの開発を進めているライアン・ダール氏は、自身のブログで「Dear Oracle, Please Release the JavaScript Trademark」(親愛なるオラクル殿、どうかJavaScriptの商標を手放して)と呼びかけています。 JavaScriptはNetscapeがWebブラウザ用に開発したプログラミング言語であることはよく知られていますが、その名称はサン・マイクロシステムズが登録商標として所有し、同社がオラクルに買収されたことで現在はオラクルが所有しています。 ライアン・ダール氏はそのオラクルが唯一「Oracle JavaScript Extension Toolkit」以外にはJavaScript関連製品を持っておらず、V8やSpidermokeyといった主要なJavaScrip

                  Denoのライアン・ダール氏「親愛なるオラクル殿、どうかJavaScriptの商標を手放して」と呼びかけ
                • JavaScriptのthisは結局何種類あるのか - uhyo/blog

                  JavaScriptのややこしい機能としてよく槍玉に挙げられるのがthisです。その特徴のひとつは状況によって意味(thisの値)が違うことであり、これを指して「JavaScriptのthisは4種類」とする説も見られます。 そこで、この記事ではthisが何種類あるのか、ECMAScript仕様書を頼りに調べます。ECMAScript仕様書とはJavaScriptという言語を定義する文書であり、JavaScriptのthisがどのような挙動をするのかも当然定義されています。今回は仕様書の2020年5月26日版ドラフトを参照します。 https://tc39.es/ecma262/結論としては、最も大ざっぱに分けると3種類、最も細かく分けると157種類です。この記事では全種類漏れなくサンプルコード付きで説明します(似たようなやつはまとめて説明します。また、一部観測不能なものがあります)。 ス

                    JavaScriptのthisは結局何種類あるのか - uhyo/blog
                  • JavaScriptで重複排除を自分で実装してはいけない(Setを使う) - Qiita

                    若者とプログラミングをしていて非常にショックを受けたのだが「JavaScript 配列 重複 削除」で検索するとfilterとindexOfを使ったアルゴリズムが検索結果上位に出てくる。これはO(N^2)。計算量の概念がないというのはとても恐ろしい。Big Techがアルゴリズム偏重の試験を課すのは合理的だと確信した。 — 父🌒 (@fushiroyama) March 10, 2020 先日このようなツイートが流れてきたので、$O(N^2)$、つまり計算量が $N^2$ に比例するということの恐ろしさを簡単に書きます。 JavaScriptで配列から重複を排除するコード EcmaScript 2015から導入されたSetを使えばものすごく簡単に書けます。 const array1 = [1, 5, 3, 1, 5, 3]; const array2 = Array.from(new S

                      JavaScriptで重複排除を自分で実装してはいけない(Setを使う) - Qiita
                    • これだけは押さえておきたい ES2022の便利機能

                      Qiita Night 〜フロントエンド〜 で発表した資料です

                        これだけは押さえておきたい ES2022の便利機能
                      • JavaScript のメディアタイプと RFC 9239 | blog.jxck.io

                        Intro 長いこと作業が行われていた JavaScript の MIME タイプについての作業が完了し、 RFC 9239 として公開された。 これにより、推奨される MIME タイプが text/javascript に統一されることになった。 かつて推奨されていた application/javascript ではなくなった経緯などを踏まえ、解説する。 JavaScript MIME Types HTTP で Response する際に指定する Content-Type は、その内容がなんであるかを Client に Indicate し、適切な処理を促すために使用される。 例えば HTML が text/html であったりするように、 JS も内容はテキストなので text/javascript が自然に思える。 しかし、例えば MS が実装していた JS 互換の JScript

                          JavaScript のメディアタイプと RFC 9239 | blog.jxck.io
                        • ECMAScript(JavaScript)の仕様をちょっと読んでみよう - Qiita

                          イントロ MDN はもはや業界標準の JavaScript リファレンスサイトであるが、JavaScript の syntax (構文) や低レベルな動作については情報が載っていないことがある。このような場合は仕様に立ち返ってみる必要があるが、ECMAScript の仕様は非常に分かりにくい。この記事では、ECMAScript の仕様がどういうルールで書かれているか、どう読めばいいかを軽く説明する。 if 文の syntax の仕様ってどうなってるの? if 文は statement1 であるから、"13 ECMAScript Language: Statements and Declarations" の中で説明されている。 早速最初の syntax1 のところを見てみると、下のように分かりにくい式のようなものが書かれている。 https://tc39.es/ecma262/#prod-

                            ECMAScript(JavaScript)の仕様をちょっと読んでみよう - Qiita
                          • Deep JavaScript

                            Homepage Please support this book: buy it or donate (Ad, please don’t block.) Deep JavaScript Table of contents

                            • JavaScriptに「型」を ~Microsoftが新構文を提案へ/TypeScriptの知見をもとにした「コメントとしての型」

                                JavaScriptに「型」を ~Microsoftが新構文を提案へ/TypeScriptの知見をもとにした「コメントとしての型」
                              • JavaScript にイミュータブルな配列操作メソッドを導入するプロポーザルについて

                                この記事では、現在 Stage 1 のプロポーザル Change Array by copy について解説する。 プロポーザルの詳細については、https://github.com/tc39/proposal-change-array-by-copy を参照してほしい。 また、ここで紹介した仕様に関しては今後更新されていく可能性がある。 概要 Change Array by copy は、簡単にいえばイミュータブルな配列操作メソッドを導入するプロポーザルである。 JavaScript の配列には多くのインスタンスメソッドがあり、それらを使って配列を操作できる。 配列のインスタンスメソッドには、ミュータブルなもの、つまりもとの配列を変更することによって配列を操作するタイプのものがいくつかある。 たとえば、Array.prototype.push や Array.prototype.pop、A

                                  JavaScript にイミュータブルな配列操作メソッドを導入するプロポーザルについて
                                • Promise.allSettled と Promise.any | blog.jxck.io

                                  Intro Promise.allSettled() と Promise.any() の仕様策定が進んでいる。 両者は近いレイヤの仕様では有るが、作業の進捗には差がある。 Promise.allSettled は Stage 4 であり、 Chrome や Safari TP には実装もされている Promise.any は Stage 2 であり、実装はまだない ここでは、これらがあると何が嬉しいのかを Promise.all(), Promise.race() の特徴を踏まえて解説する。 Promise.all()/race() Promise.all(), Promise.race() は、いずれも複数の Promise をまとめて処理する Utility Method のようなものである。 all は全ての Promise が Resolve したら Resolve し、 race

                                    Promise.allSettled と Promise.any | blog.jxck.io
                                  • JavaScriptでvarが非推奨な理由を整理してみた - Qiita

                                    はじめに 未経験からNode.jsの現場に配属された2019年新卒エンジニアが、学習の振り返りとしてJavaScriptの基礎の基礎をまとめます。 今回は、JavaScriptの変数宣言についてあらためて整理し、なぜ近年のJavaScriptではvarの使用が推奨されていないのかをまとめたいと思います。 こういう人に読んでもらいたい JavaScriptを勉強したてで、ひとまず変数にはvarを使ってる人 letやconstを使っているけど、改めて訊かれると理由を上手く説明できない人 JavaScriptにおける変数宣言をおさらい 本題に入る前に、まずJavaScriptの宣言に関する基本的な挙動を整理します。 宣言の種類は? 2019/12月現在、JavaScriptの変数宣言キーワードにはvar, let, constの3つがある。 元々はvarしかなかったところに、ECMAScript

                                      JavaScriptでvarが非推奨な理由を整理してみた - Qiita
                                    • top-level awaitがどのようにES Modulesに影響するのか完全に理解する - Qiita

                                      先日、TypeScript 3.8 RCが公開されました。TypeScript 3.8はクラスのprivateフィールド(#nameみたいなやつ)を始めとして、ECMAScriptの新機能のサポートがいくつか追加されています。この記事で取り扱うtop-level awaitもその一つです。 この記事ではtop-level awaitに焦点を当てて、その意味や使い方について余すところなく解説します。top-level awaitは一見単純な機能に見えますが、実はモジュール (ES Modules) と深い関係があり、そこがtop-level awaitの特に難しい点です。そこで、この記事ではECMAScriptのモジュールについても詳しく解説します。この記事を読んでtop-level awaitを完全に理解して備えましょう。 ※ この記事は3分の1くらい読むと「まとめ」があり、残りはおまけで

                                        top-level awaitがどのようにES Modulesに影響するのか完全に理解する - Qiita
                                      • 【翻訳】Date and Times in JavaScript - from scratch

                                        この記事は littledan から依頼を受けて、翻訳しています。広く Date and Times の JS プロポーザルについて意見がほしいとのことです。 意見は以下の場所にポストできます。 docs.google.com 原文: blogs.igalia.com tl;dr: Temporal のプロポーザルについてフィードバックを求めています。 Polyfill を試したら、サーベイの回答を送ってください、ただしまだ本番環境では使わないでもらいたいです。 JavaScript の Date クラスは壊れています、しかし Breaking the Web を起こさずに修正する方法はありません。風のうわさでは、 Date クラスは 10 日で作られた JS Engine のhackに含まれたもので、 java.util.Date に基づいたものと言われています。しかも java.uti

                                          【翻訳】Date and Times in JavaScript - from scratch
                                        • 82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm

                                          MP3ファイルをダウンロード 内容紹介 yosuke_furukawaさんをゲストに、JavaScriptランタイム、Node.js、イベントループモデル、JavaScriptエンジン、Denoの生まれた経緯について語っていただいたエピソードです。 出演者 話したネタ denoの話 Bun first impressions Node.js、Deno、Bunとは何か? JavaScriptランタイムとは何か? サーバーサイドJavaScript expressを利用してWebサーバーを立てるコードは、Node.js以外でも動くのか? ECMAScript と ランタイム との関係は? TC39 Node.js はどんな経緯で生まれてきた? Rubyを書くタイミングと、JavaScriptを書くタイミングでのコンテキストスイッチ netv8 イベントループモデルとは何か? ブロッキング処理、

                                            82. Node.js、Deno、Bun (前編) w/ yosuke_furukawa | fukabori.fm
                                          • CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか

                                            Secretlint v7でCommonJS からES Modulesへの移行を行いました。 Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し この記事では、CommonJS(CJS)からES Modules(ESM)への移行を行った経緯と、移行する方法について紹介します。 CJSからESMへの移行は、率直に言えば単調な作業で、メリットが見えにくい作業です。 しかし、将来的にCJSよりもESMが主流になることは間違いないので、移行することは必要です。 移行の作業は、移行方法が決まれば大部分は機械的な書き換えが可能です。 では、実際にどうやって移行したのかを紹介します。 ESMへの移行の影響は依存元へと連鎖する Secretlintのリポジトリはmonorepoになっていて、だいたい40コぐらいのパッケージが含まれています。 そしてパッケージ間で依存関係があ

                                              CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか
                                            • Falsy値を比較せずにそのまま判定に使うことはやめよう

                                              …という話を現場でしました。 こんにちは、クレスウェア株式会社の奥野賢太郎 ( @okunokentaro ) です。TypeScript をお使いのみなさんは、Falsy 値(フォルシーち)というものをご存知ですか。TypeScript や JavaScript を長年使っている読者であれば「そんなもの常識だろう」となるかもしれませんが、TypeScript からの入門者だったり、他言語から TypeScript へ移ってきたような「JavaScript 未経験の TypeScript 経験者」が近年現れ始めており、筆者には案外これが常識とも言い切れなくなっているという感覚があります。 この Falsy 値、もちろん知っているに越したことはないかもしれませんが、TypeScript 全盛となったこの時代にただでさえ他に覚えるべきことが多いなか、果たしてこれはずっと常識のままなのでしょうか

                                                Falsy値を比較せずにそのまま判定に使うことはやめよう
                                              • JavaScript エコシステムを維持する OSS の努力と課題

                                                JSConf JP 2021 の基調講演として発表したスライドです。 https://jsconf.jp/2021/talk/javascript-maintaining-ecosystem-oss-struggles-and-challenges

                                                  JavaScript エコシステムを維持する OSS の努力と課題
                                                • 僕は、なぜ絵文字の長さが、直感に反するのか理解したい...!! - Qiita

                                                  対象者 UnicodeやUTF-16について、よくわかってない人 -> ここから "😀".split("")で文字化けする理由がわからない人 -> ここから [..."👨‍👩‍👧"].lengthが5になる理由がわからない人 -> ここから 文字コードについてもう一度 文字コードは以下の二つで構成されています 符号化文字集合: 文字と、その文字の位置を示す一意の番号の集合 文字符号化方式: 文字に振られた番号をバイト表現にエンコードする方法 符号化文字集合 符号化文字集合は、 文字 その文字の位置を示す一意の番号 この二つの組み合わせの集合のことを指します。 例えばASCIIでは 8bit(128通り) でラテン文字や英数字を表現しています。 しかしASCIIには日本語などの非英語圏の文字が収録されていません。 そのため、日本語を収録したShift-JISやアジア圏の文字を収録した

                                                    僕は、なぜ絵文字の長さが、直感に反するのか理解したい...!! - Qiita
                                                  • HTML, CSS, JavaScriptの標準の仕様書はどこにあるのか

                                                    HTML HTMLの仕様策定には複雑な歴史があります。詳細は他の解説記事に譲りますが、簡単に述べるとW3CとWHATWGのダブルスタンダード状態が長い間続いていました。2022年現在はWHATWGによってLiving Standardとしてまとめられた仕様が実質的な標準となっています。Living Standardという名前が示す通り、バージョンはなくエディターによって随時更新されています。 CSS CSSの仕様はW3Cが策定しています。現在は、CSSとして1つの標準仕様があるわけではなく、数多くのモジュールに分かれて標準仕様の策定が進められています。草案、勧告候補などを経て勧告に至るプロセスと、Levelという概念で整理されたバージョン管理が特徴です。年に1度、SnapShotとしてその時点での標準化の概況が公開されています。 JavaScript JavaScriptは主にWebブラウ

                                                      HTML, CSS, JavaScriptの標準の仕様書はどこにあるのか
                                                    • タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog

                                                      「Date and Time on the Internet: Timestamps with additional information」という提案仕様がIETFで提出されているので簡単に紹介する。 この仕様では、下記のようなタイムスタンプの文字列フォーマットの定義を行う 1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew] 背景 TC39 Temporal Temporalという時間を扱う新しいAPIが、TC39でStage 3となっている。 tc39.es このAPIでは、タイムゾーンを含む文字列を生成できる。 const zonedDateTime = Temporal.ZonedDateTime.from({ timeZone: 'America/Los_Angeles', year: 1995, month:

                                                        タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog
                                                      • JavaScriptのレガシー挙動を定めたAnnex Bをひたすら読む記事

                                                        ECMAScript Annex Bおよび関連する仕様を読みます。 おことわり 言うまでもありませんが、ここで説明されている機能は使わないようにしましょう。 筆者がJavaScriptを書き始めたのは2005年頃で、その後2010年代は実質的な空白期間でした。そのため本記事に含まれる歴史的背景の説明は、2005年頃の筆者が学んだ内容に加えて、当時の資料を遡って調査した結果に基づいて記載されています。できる限り信頼性の高い情報を見つけた上で記述するよう心がけましたが、当時常識だった知識の欠落等により不正確な記述になっている部分があるかもしれません。もし誤り等があったら指摘いただけると嬉しいです。 現在のzennでは <sub></sub> や <ins></ins> は描画されていませんが、心の目で下付き文字や下線装飾に読み替えてください。 ECMAScript Annex B とは ECM

                                                          JavaScriptのレガシー挙動を定めたAnnex Bをひたすら読む記事
                                                        • core-js/docs/2023-02-14-so-whats-next.md at master · zloirock/core-js

                                                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                            core-js/docs/2023-02-14-so-whats-next.md at master · zloirock/core-js
                                                          • 実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog

                                                            Wantedlyではこのたび、フロントエンドアプリケーションのひとつをNative ESM化しました。本記事ではNative ESM化の必要性と、必要な作業について説明します。 この記事の概要Node.jsにはNative ESMというモードがある。Native ESMはまだ普及していないが、ライブラリ側の更新が進み、移行が必要になりつつある。Native ESMをめぐる状況は (この記事の長さからわかるように) 色々複雑で、概念をちゃんと説明するだけでも大変。Native ESMへの移行にあたってはさまざまな困難が待ち受けている。Native ESMとは歴史的経緯から、JavaScriptには複数のモジュールシステムがあります。そのうちNode.js周辺でよく使われるのはCommonJS ModulesとES Modulesです。 CommonJS Modules (CJS) は実質的に

                                                              実践 Node.js Native ESM — Wantedlyでのアプリケーション移行事例 | Wantedly Engineer Blog
                                                            • Everything you need to know from ES2016 to ES2019

                                                              JavaScript is a language in constant evolution and in the past few years many new features have been added to the ECMAScript specification. This article is an extract of my book Complete Guide to Modern JavaScript and it covers the new additions of ES2016, ES2017, ES2018, ES2019. At the end of the article you will find a link to download a cheatsheet that summarizes everything. Everything new in E

                                                                Everything you need to know from ES2016 to ES2019
                                                              • CommonJS is not going away | Bun Blog

                                                                We're hiring C/C++ and Zig engineers to build the future of JavaScript! Join our team → Some may be surprised to see the recent release notes for Bun mention CommonJS support. After all, CommonJS is a legacy module system, and the future of JavaScript is ES Modules (ESM), right? As a "forward-thinking" "next-gen" runtime, why would Bun put so much effort into improving CommonJS support? The latest

                                                                • var / let / const と言う脈略のない三銃士ども · Ubugeeei/work-log · Discussion #136

                                                                  序 ここ数日、for文の由来は何か? と言う話題が上がった。 シンタックスのキーワードの由来については自分も関心があって、好きなトピック。 中でも、いつも思っていたことがあって、JavaScriptの変数宣言に使われるキーワード選定が謎と言うのがある。 このことについてツイートしたところたくさんの方に反応をいただけたので備忘録として。 元ツイ: https://twitter.com/ubugeeei/status/1691491304428236800?s=20 お気持ち: https://twitter.com/ubugeeei/status/1691623230812123376?s=20 その他お気持ち: https://twitter.com/ubugeeei/status/1691519021957672961?s=20 https://twitter.com/ubugeeei

                                                                    var / let / const と言う脈略のない三銃士ども · Ubugeeei/work-log · Discussion #136
                                                                  • 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本
                                                                    • document.all の例外仕様を知っていますか

                                                                      昨日、ツイッターで次のような JavaScript クイズを出しました。 久しぶりの JavaScript クイズ! function hello(x) { if(typeof x === 'undefined') { alert(x.f()); } } この hello 関数で "Hello, World!" のアラートを表示させることが出来るか? — Takuo Kihira (@tkihira) July 31, 2022 このブログ記事では、この問題について解説します。 解答 答えは「出来る」です。出題者の意図としては document.all を想定しておりました。 document.all は、ブラウザに存在する、非常に特殊なオブジェクトです。 document.all 自体は object 型である。console.log(document.all) とすると内容が確認出来る

                                                                      • JavaScript の Module Fragments について

                                                                        現在 TC39 の 3 月のミーティングのアジェンダが GitHub にて公開されている(Link)。 それによると、Module Frangments という新しいプロポーザルが@littledan氏によって提案される予定だ。 この記事では、現在の Module Frangments の概要とモチベーション、構文について解説する。もしさらなる詳細に興味がある場合は https://github.com/littledan/proposal-module-fragments を読んでほしい。 また、Module Fragments は現在 Stage 0 の提案であり、今後仕様が大きく変わっていくことが予想されるのでその点には注意してほしい。 概要 Module Fragments はインラインで JavaScript のモジュールを定義するための構文を導入する提案である。詳細は後述するが

                                                                          JavaScript の Module Fragments について
                                                                        • JavaScript の Bind Operator プロポーザルが復活した | Yuku Kotani

                                                                          Gzemnid はざっくりしていて完璧に信用はできないが、十分に使われていることはわかる。 特に Node や Deno などの JavaScript ランタイムや polyfill 系ライブラリでは、プロトタイプ汚染などを避けるために多用されている。 にもかかわらず、.bind と .call は自然言語の SVO 的な思考の流れに反していてむずかしい。実際のユースケースで見比べてみるとわかる。 // bluebird@3.5.5/js/release/synchronous_inspection.js return isPending.call(this._target()); return this._target()::isPending(); // ajv@6.10.0/lib/ajv.js validate = macro.call(self, schema, parentSc

                                                                            JavaScript の Bind Operator プロポーザルが復活した | Yuku Kotani
                                                                          • Deep Dive: Node.jsのESMデフォルト化への道

                                                                            Node.js 21では --experimental-default-type=module フラグで、JavaScriptファイルのデフォルトの解釈をCJS(CommonJS)からESM(ECMAScript Modules)に変更できるようになっています。 Node.js 21 is now available! | Node.js これは、Node.jsにおいてJavaScriptファイル(.js)のデフォルトをESMに変更するための第一歩です。 今回のDeep Diveでは、Node.jsのESMデフォルト化に向けたIssueや実装について紹介します。 Node.jsのESMデフォルト化 Discussion: New “ESM by default” mode · Issue #49432 · nodejs/node このIssueは、Node.jsにおけるambiguous

                                                                              Deep Dive: Node.jsのESMデフォルト化への道
                                                                            • 6年を経てFloat16ArrayをStage 3にしてもらった - pixiv inside

                                                                              こんにちは。福岡オフィスエンジニアの @petamoriken です。趣味でFloat16Arrayのponyfill1を公開しECMAScriptに入れてもらうように活動していたところ、喜ばしいことに2023年5月のTC39会議にてStage 3となりました。折角なのでその経緯を書いていこうと思います。 ECMAScript excitement 😉@TC39 advanced these proposals this week 🎉 4️⃣ Atomics.waitAsync 4️⃣ RegExp v flag 4️⃣ Well-Formed Unicode Strings 3️⃣ Decorator Metadata 3️⃣ Float16Array 2️⃣ Base64 for Uint8Array 2️⃣ Promise.withResolvers 2️⃣ TimeZone C

                                                                                6年を経てFloat16ArrayをStage 3にしてもらった - pixiv inside
                                                                              • import文で画像やCSSを読み込むのはECMAScript仕様違反か - uhyo/blog

                                                                                近頃のJavaScript開発は、モジュールとして書かれた複数のJavaScriptファイルをimport文やexport文を通じて連携させるのが基本です。また、それらのファイルはWebpackに代表されるバンドラによって事前に処理され、import文の解決・ファイルの結合といった前処理を施されるのが普通です。まったく、各ファイルが他に影響を与えないように(function(){ ... })()で囲んで文字列連結していた時代が懐かしいですね。 さて、import文の解決を担当するバンドラは、大抵JavaScriptプログラム以外のものを読み込む機能を備えています。Webpackならばloaderと呼ばれるものですね。例えば、style-loaderやcss-loaderが持つCSS Modulesの機能を使うと次のようなプログラムを書くことができます(Reactの例)。 import s

                                                                                  import文で画像やCSSを読み込むのはECMAScript仕様違反か - uhyo/blog
                                                                                • TypeScript 5.2で予告されているusingをいじってみる

                                                                                  この記事でのusing宣言の動作はBabelのtransform及びes-shimsのpolyfill実装に依存しており、実際のV8エンジンやTypeScriptのトランスパイル出力の挙動とは異なる可能性があります。 以下の挙動がusing宣言に対応している処理系の実際の挙動と異なる場合はコメントをいただけると幸いです。 導入 先日、Twitterでこんなツイートが回ってきました。 TypeScript 5.2で新しい「using宣言」が追加されるというものです。 しかも、TypeScriptの独自構文かと思いきや、JavaScriptのStage 3のProposalをTypeScriptで先行実装するという通常のTypeScriptの実装プロセスに則ったものでした。 新しい変数宣言の追加はES 2015(ES6)の「let」「const」以来でなんと8年ぶりで、JavaScript/T

                                                                                    TypeScript 5.2で予告されているusingをいじってみる