函数の length プロパティ JavaScript の函数は length プロパティが設定されるようになっています。これは函数を作った際に受け取る引数(デフォルト引数や残余引数が現れる前の引数)の数が設定されます。
函数の length プロパティ JavaScript の函数は length プロパティが設定されるようになっています。これは函数を作った際に受け取る引数(デフォルト引数や残余引数が現れる前の引数)の数が設定されます。
Phaser 3はPhaser 2とは別物と言ってもいいくらいに多くの点が変化しました。 変更点に関してはPhaser World Issue 116に詳しいことが書いてあります。 madmimi.com 個人的に気になった変更点 その中から個人的に気になった変更点をいくつかピックアップしたいと思います。 ディスプレイツリー構造が廃止になった Phaser 2ではあるオブジェクトに別のオブジェクトを子要素として追加し、全体としてはツリーの構造にして一つの表示物を作るのが一般的でした。 Phaser 3ではそのようなことができなくなっています。ゲームオブジェクトが他のゲームオブジェクトを子要素として含むことはできず、全てのゲームオブジェクトがフラットになるようです。 この変更はかなり影響があるのではないでしょうか。Containerを使えばディスプレイツリーと同じようなことはできますが、Ph
クラスの name プロパティ JavaScript のクラスは name プロパティが設定されるようになっています。これは SetFunctionName が実行されることによるもので、通常の函数と同様に、クラス宣言、クラス式問わずに設定されます。 // クラス宣言 class Foo {} console.log(Foo.name); // "Foo" // 変数宣言でクラス式を使う const Bar = class {} console.log(Bar.name); // "Bar"
direct eval とは eval 函数を実行する際、参照される変数名が eval そのままで実行される場合を direct eval と呼び、そうでない indirect eval と区別しています。direct eval はそのスコープでの実行となりますが indirect eval は別のコンテキストで実行されます(新しく <script> タグが作られて実行されると考えるとわかりやすいかもしれません)。 globalThis.foo = "global foo"; { const foo = "shadowed foo"; // direct eval console.log(eval("foo")); // "shadowed foo" // indirect eval const indirectEval = eval; console.log(indirectEval("
この記事は、syumai Advent Calendar 2024 18日目の記事です。 まずはクイズにチャレンジ! 今回のJavaScriptクイズにチャレンジできる特設ページを作ったので、まずはこちらで遊んでみてください。 Shinyai.js 第1回 JavaScriptクイズ - https://shinyaijs.syum.ai/events/1 v0にベースを作ってもらって、@opennextjs/cloudflareを使ってCloudflare Workersにデプロイする形でホストしています。 Shinyai.jsとは? Shinyaigeekの家で行われた、ただの飲み会です。 何故か全員発表資料があったので、自分の持ってきたクイズに回答したり、それぞれのスライドを映したりしながら酒を飲んでいました。 準備不足だったために、当日に解説をちゃんと用意できていなかった問題もいく
Include the following script tag in your HTML file. <script src="https://cdn.jsdelivr.net/gh/rajnandan1/termo/dist/termo.min.js"></script> Install the package using npm. npm install @rajnandan1/termo Include / Import. import Termo from '@rajnandan1/termo'; Please note that termo is a client side library and it will not work in server side code. Sample React Code import React, { useEffect, useRef }
Clean and readable - Keep your code clean and readable, while the library uses battle-tested and powerful ICU MessageFormat under the hood. Universal - Use it everywhere. @lingui/core provides the essential intl functionality which works in any JavaScript project while @lingui/react offers components to leverage React rendering, including React Server Components (RSC) support. The same extract-and
ECMAScript のモジュール ECMAScript にはもともとモジュール1つをカプセル化して表現した Abstract Module Records という抽象クラスと、それを継承した Source Text Module Records 具象クラスのみが定義されていました。 Source Text Module Records がいわゆる JavaScript モジュールを表しており、ざっくり以下のような特徴を持ちます。 JavaScript のソースコードを持つ 他のモジュールと(循環可能な)依存関係を持ち、有向グラフを作る モジュールグラフから、それぞれのモジュールの実行順が定められる Cyclic Module Records の策定 WebAssembly の登場により JavaScript のソースコードを持たないが、依存グラフに参加出来るモジュールが仕様に必要となりま
Reflect.ownKeys のプロパティ列挙順 ES2015 Reflect.ownKeys は対象オブジェクトが持つ [[OwnPropertyKeys]] 内部メソッドを呼び出します。Proxy や Module Namespace オブジェクトのような Exotic Object にはそれぞれ定義された [[OwnPropertyKeys]] 内部メソッドで順番が定義されますが、普通のオブジェクトは OrdinaryOwnPropertyKeys で定義された順に列挙されます。 OrdinaryOwnPropertyKeys は以下の順で列挙します。 配列のインデックスとなりうる整数(文字列)プロパティ(array index)をその数の順番で列挙する 1 以外の文字列プロパティを作成順に列挙する Symbol プロパティを作成順に列挙する const obj = { [3]:
イテレーターの next メソッドをキャッシュする JavaScript エンジンに ES2015 の機能が入り始め、Web ディベロッパーたちがその便利さに感動していた頃の話。配列で for...of やスプレッド構文を使うのは確かに便利な一方で、単純な for 文の方が高速に実行できることが問題視されました。 原因は明白で for 文の場合は値を取り出すのにプロパティアクセスするだけですみますが、for...of やスプレッド構文の場合は値を取り出すのに毎回イテレーターの next メソッドを呼び出す必要があります。そこでパフォーマンスを改善するため、互換性の問題が起きない範囲で破壊的変更を入れる案が2つ出ました。 %ArrayIteratorPrototype%.next といったビルトインイテレーターの next メソッドを変更不可能にし、それらから値を取り出す際にエンジンの最適化
皆さんは新しく実装が進む Node.prototype.moveBefore というメソッドをご存知でしょうか、この記事ではこの新しいメソッドについて簡単な解説を行おうと思います。 新しく実装が進む Node.prototype.moveBefore メソッド Node.prototype.moveBefore() とは新しく Node インターフェースに追加されるメソッドで Node.prototype.insertBefore() と同様のシグネチャーで要素の状態を維持しつつノードの移動ができる API です。 「要素の状態を維持しつつノードの移動ができる」という表現が想像できない人もいるかもしれませんが具体的な例としては、X のこのポストに付随している動画を見ていただけるとわかりやすいかと思います。 注目していただきたい点としては、要素が左右に移動した際にアニメーションの状態が保持さ
非同期イテラブル(非同期反復可能)とは ES2018 から仕様の中に非同期イテラブルインターフェースと非同期イテレーターインターフェースが定義されています。非同期イテラブルインターフェースを実装したオブジェクト[1]のことを単に非同期イテラブル(非同期反復可能)と呼びます。 ざっくり TypeScript の型で表現すると以下のようになります(実際の TypeScript での型はジェネリクスになっています)。 interface AsyncIterable { [Symbol.asyncIerator](): AsyncIterator; } interface AsyncIterator { next(value?: any): Promise<IteratorResult>; return?(value?: any): Promise<IteratorResult>; throw?(
概要 文章をコピペしてエクセルに張り付けたときに、画面のスタイルもコピーされてしまって困ったことはありますか?ありますよね! (↓こんな感じ) 私もよくやってしまうのですが、実際にどのような処理が行われているのかよく分かっていませんでした。理解を深めるためにも、自分で実装して謎を解いていきたいと思います。 3つパターンの処理を実装 比較のため、プレーンテキスト・HTMLテキスト・リッチテキストのコピー機能をサンプルプログラムを実装してみました。 (リッチテキストのコピーが、範囲選択してコピペしたときと同じ機能を想定しています。) HTMLファイル 画面表示されるHTMLは下記のような感じです。各コピー処理でid="message"の部分を固定でコピーするようにします。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"
イテラブル(反復可能)とは ES2015 から仕様の中にイテラブルインターフェースとイテレーターインターフェースが定義されています。イテラブルインターフェースを実装したオブジェクトやプリミティブのことを単にイテラブル(反復可能)と呼びます。 ざっくり TypeScript の型で表現すると以下のようになります(実際の TypeScript での型はジェネリクスになっています)。 interface Iterable { [Symbol.iterator](): Iterator; } interface Iterator { next(value?: any): IteratorResult; return?(value?: any): IteratorResult; throw?(error?: any): IteratorResult; } interface IteratorResu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く