問題タブ [ecma262]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - v8 が ECMAScript 5 を実装するのはいつですか?
v8は ECMAScript 第 5 版の問題についてかなり無口であることに気付きました。
V8 は、ECMA-262 第 3 版で指定されている ECMAScript を実装し、Windows XP および Vista、Mac OS X 10.5 (Leopard)、および IA-32 または ARM プロセッサを使用する Linux システムで動作します。
バグトラッカーでさえ静かに見えます...
あるバグで、コミッターがこれを書いているのを見つけることができます:
V8 は、JavaScript ではなく、ECMAScript の実装です。後者は、Mozilla によって作成された ECMAScript の標準化されていない拡張です。V8 は、WebKit/Safari の ECMAScript 実装である JSC とプラグイン互換であることを意図しています。そのため、JSC にもある ECMAScript の非標準拡張機能を多数実装しており、これらのほとんどは Mozilla の JavaScript 言語にもあります。JSC にない非標準機能を V8 に追加する予定はありません。
興味深いことに、彼は 2010 年 10 月 8 日に ECMAScript 5 が公開された 2009 年 12 月にそれを書き、その 2 か月前に ECMAScript 5 のスーパーセットである Javascript 1.8.5 がリリースされました。
では、Google が ECMAScript 第 5 版で実行できるように v8 をいつ更新するのかという疑問が残ります。ECMAScript の最新の標準化にアップグレードする計画さえありますか?
javascript - プロトタイプnullのオブジェクトを介したECMAScript連想配列?
私はこれをやっている人をたくさん見ます
私の質問は、をハッシュとして.hasOwnProperty
使用するたびにテストするのではなく、なぜオブジェクトにtoを設定しないのですか? †</p>
Object
.__proto__
null
__proto__
非標準であることが私の注意を引きました。それはまだ質問に答えていませんが...
var foo = Object.create(null); Object.getPrototypeOf(foo);
これは元の質問ではありませんが、継承をチェックする必要があるという欠点を排除するために変更することについて何も見つかりませんか? このアプローチの何が問題なのですか。コードを高速化 (のプロパティをチェックする必要はありません) し、よりクリーンにしているようです。__proto__
null
Object
† また、.prototype
将来その子を作成する予定がある場合は、そのプロパティ。
javascript - JavaScript オブジェクト プロパティ ルックアップ - 構文は重要ですか?
これは JavaScript (ECMAScript) 言語に関する基本的な質問なので、重複している場合は事前にお詫びします (少し検索しても正確な質問が見つかりませんでした)。
ECMAScript では、オブジェクトのプロパティを取得/設定するために 2 つの基本的な構文形式を使用でき、まったく同じ効果があるように見えます。よくわからないので、それらを「プロパティ」および「連想配列」表記と呼びます。
これら 2 つの表記法の間に実際の違いはありますか? 明らかに、連想配列表記を使用すると、オブジェクトで動的に生成されたキーを検索できます (そして、その引数を文字列に強制的にキャストできます) が、プロパティ表記はリテラルを使用しますが、それが唯一の違いですか?
javascript - JavaScript のアクティベーションと変数オブジェクト?
「活性化オブジェクト」という用語は「変数オブジェクト」の別の名前ですか、それとも実際には違いがありますか? 実行コンテキストで変数スコープがどのように形成されるかについての JavaScript の記事をいくつか読んでいますが、私の見解では、ほとんどの記事でこれら 2 つの用語を同じ意味で使用しているようです。
java - Java と ECMA-262 (AS、JS) の正規表現の違い
Java 正規表現を Actionscript 正規表現に変換する必要があります。
どうやら既製のコンバーターはないようなので、自分で作成しようとしています。すべての違いをリストするリソースはありますか?
私はregular-expressions.infoを認識していますが、そこには違いの包括的なリストがないようです。
ありがとう
heroku - Gemfile.lockがチェックインされていません-Heroku×45807
(7)と同じ問題を取得し、考えられるすべての答えを試しましたが、それでも前進できませんでした。私はあなたが助けてくれることを願っています(私は初心者であることを念頭に置いてください)。これが問題の説明です@手:オブジェクトのカウント:7、完了。最大4つのスレッドを使用したデルタ圧縮。オブジェクトの圧縮:100%(4/4)、完了。オブジェクトの書き込み:100%(4/4)、403バイト、完了。合計4(デルタ3)、再利用0(デルタ0)
ありがとう
javascript - Javascript での予約語の使用
Javascript には、内部で使用できないさまざまな予約語Identifiers
があります。それらのいくつかは、将来の使用のために実際に予約されています。少し明確にするために、 anIdentifier
はIdentifier Name
予約語ではありません。ここでは、識別子名の正確な文法は関係ありません。
ただし、ここの最後の段落によるとIdentifier Name
、予約語であってもany を使用することが有効な場所があるようです。記事は有効であると述べています
2 番目の形式が有効であることは明らかですが、1 番目と 3 番目の形式は正しくないと常に考えていました。
実際、このリソースは
無効なコードとして。
予約語が実際に有効な場所はありますか?
動機として、フォームのオブジェクトを渡すのが理にかなっている API を書いています。
しかし、ユーザーに括弧を付けることを強制したくありませんin
。
javascript - Javascript ホスト オブジェクトを検出する環境に依存しない方法はありますか?
Javascript スタックトレース ライブラリを作成しています。ライブラリは、特定のオブジェクトまたは関数がプログラマーによって作成されたのか、それとも環境の一部としてそこにあったのか (組み込みオブジェクトを含む) を検出する必要があります。ホスト オブジェクトは、予測できない動作のために少し問題になりつつあるため、Javascript の特定のオブジェクトがホスト オブジェクトであるかどうかを判断する環境にとらわれない方法を探しています ( ECMAScript 3 - 4.3.8 を参照)。ただし、ホスト オブジェクトをネイティブ オブジェクトやプリミティブ値と区別することは、他のプロジェクトのプログラマーにとって、特にブラウザーのない環境で役立つので、ホスト オブジェクトが私のライブラリーで引き起こす問題やプログラマーを区別することではなく、その点に焦点を当てたいと思います。 -作成されたオブジェクト。
これまでのところ、javascript コードを実行している環境に依存するソリューションしか思いつきませんでした。例えば:
jQuery 独自のisPlainObject()メソッドも環境に依存しており、ロジックがかなり複雑であることに気付きました。
おそらくこれは、ホスト オブジェクトを持つ獣の性質によるものです (その動作は環境によって定義されるため)。ソリューションの準備ができています。
そう。ホスト オブジェクトをテストするための、プラットフォームに依存しないシンプルなソリューションを知っている人はいますか? また、Node や Rhino などのブラウザレス環境で実行すると、さらに効果的です。
可能なアプローチ(うまくいかないかもしれません):
- ホスト オブジェクトの特性をテストすることは、その動作に関する仕様がないことを考えると、失われた原因のように思えますが、オブジェクトが ES3 仕様の一部であるかどうかをテストすることは可能かもしれません。
- 非常に具体的に定義されていることを考慮して使用してみ
Object.prototype.toString()
ましたが、一部の環境 (IE など) がネイティブ オブジェクトとホスト オブジェクトに対して同じ値を返すことを選択するため、結果は決定的ではありません。 - これは
constructor
、プロトタイプ チェーンを介したオブジェクトのアルティメットが本当にinstanceof Function
.
c++ - カスタムクラスを持つQtScriptinstanceofは、プロトタイプ関連のエラーをスローします
QtScriptモジュールを使用してアプリケーションの一部のコンポーネントをスクリプト化できるQtプロジェクトがあります。
QtScriptで既存のクラスを直接使用できるように何度か試みた後、QObjectとQScriptableを継承するラッパークラスを使用することにしました(主に、QObjectを継承するかどうかに関係なく他のクラスに継承される非qobject派生クラスがあるためです。したがって、すべてのクラスを均一に扱うことは不可能です)。
現在、プロトタイプベースの継承を使用しようとしています。
私はクラスDrawable
をMeshDrawable
しなければならず、それに対応するラッパーWrapper_Drawable
とがありWrapper_MeshDrawable
ます。MeshDrawable
継承しDrawable
、Wrapper_MeshDrawable
継承しWrapper_Drawable
ます。
両方のクラスをスクリプトエンジンに認識させます(m_scriptEngine
):
私が間違っていなければ、ドキュメントには、C ++で継承関係があるため、スクリプトエンジンがのプロトタイプWrapper_Drawable
を型のオブジェクトに適用すると書かれています。Wrapper_MeshDrawable
のすべての子(実際には、にラップされたDrawableの子)Wrapper_Drawable::drawables()
を返すメソッドがあります。抽象クラスであるように、すべての子は実際にはsです。Wrapper_Drawable
Wrapper_Drawable
Drawable
MeshDrawable
ユーザーにsではDrawable
なくWrapper_Drawable
sを使用していることを「信じて」もらいたいので、次のように宣言しました。
ここで、wrapper_drawable_objは上記で宣言されています。
Wrapper_MeshDrawable
sの配列で宣言されている場合でも、エンジンがsを認識するかどうかをテストしたかったWrapper_Drawable
のです。
悲しいことに、instanceofはこのエラーをスローします:
これを実行しようとするcurChildren instanceof Number
とfalseが返されるため、問題はWrapper_Drawableに関連していると思いますが、正確に何であるかを理解できません。
よろしくお願いします。
編集> ScriptManager(スクリプトエンジンを処理し、さまざまなタイプを宣言する)、Wrapper_Drawable(一部のメソッドのみ、それ以外の場合はこのメッセージを投稿できません)、およびWrapper_MeshDrawableのコードを追加しました。
またinstanceof
、Wrapper_Drawableオブジェクトで、Numberでfalseを返し、Objectでtrueを返し、Drawable(名前が言うようにWrapper_Drawableオブジェクト)で上記のエラーをスローすることを再確認しました。
したがって、Wrapper_Drawableクラスのコードがあります。
CPP:
MeshDrawable:
CPP:
そして最後に、ScriptManager(スクリプトエンジンにさまざまなタイプを宣言します):
CPP