問題タブ [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.

0 投票する
4 に答える
80684 参照

javascript - JavaScript で arguments.callee.caller プロパティが廃止されたのはなぜですか?

arguments.callee.callerプロパティが JavaScript で廃止されたのはなぜですか?

これは JavaScript で追加され、その後廃止されましたが、ECMAScript では完全に省略されました。一部のブラウザー (Mozilla、IE) は常にサポートしており、サポートを削除する予定はありません。他のもの (Safari、Opera) はそのサポートを採用していますが、古いブラウザーでのサポートは信頼できません。

この貴重な機能を放置する正当な理由はありますか?

(または、呼び出し元の関数のハンドルを取得するためのより良い方法はありますか?)

0 投票する
5 に答える
4086 参照

javascript - Javascript/ECMAScript の関数のスコープは何ですか?

今日、同僚と Javascript のネストされた関数について話し合いました。

この例では、c と同様に、b は a の本体の外では到達できないことが試行で指摘されています。ただし、d は - a() の実行後です。ECMAScript v.3 標準でこの動作の正確な定義を探しましたが、探していた正確な言葉遣いが見つかりませんでした。Sec.13 p.71 が述べていないのは、関数宣言ステートメントによって作成された関数オブジェクトがどのオブジェクトにバインドされるかです。何か不足していますか?

0 投票する
3 に答える
3875 参照

javascript - [[Prototype]] と JavaScript のプロトタイプの関係

http://www.jibbering.com/faq/faq_notes/closures.htmlから:

注: ECMAScript は、内部オブジェクト型の内部 [[prototype]] プロパティを定義します。このプロパティはスクリプトで直接アクセスできませんが、プロパティ アクセサー解決で使用される内部 [[prototype]] プロパティで参照されるオブジェクトのチェーンです。オブジェクトのプロトタイプ チェーン。内部の [[prototype]] プロパティに関連付けられたプロトタイプの割り当て、定義、および操作を可能にするパブリック プロトタイプ プロパティが存在します。to two の関係の詳細は ECMA 262 (第 3 版) に記載されており、この説明の範囲を超えています。

二人の関係の詳細は?私はECMA 262を閲覧しましたが、そこで読んだのは次のようなものだけです:

コンストラクターに関連付けられたプロトタイプは、プログラム式の constructor.prototype によって参照できます。

ネイティブ ECMAScript オブジェクトには、[[Prototype]] と呼ばれる内部プロパティがあります。このプロパティの値は null またはオブジェクトであり、継承の実装に使用されます。

すべての組み込み関数とすべての組み込みコンストラクターには、式 Function.prototype の初期値である Function プロトタイプ オブジェクトがあります。

すべての組み込みプロトタイプ オブジェクトは、Object プロトタイプ オブジェクト自体を除いて、内部 [[Prototype]] プロパティの値として、式 Object.prototype (15.3.2.1) の初期値である Object プロトタイプ オブジェクトを持ちます。

このことから私が集めたのは、[[Prototype]] プロパティがprototypeほとんどすべてのオブジェクトのプロパティと同等であるということだけです。私は間違っていますか?

0 投票する
4 に答える
1491 参照

javascript - Ecma-262 (EcmaScript 5) はどのように役立ちますか?

EcmaScript 第 5 版、またはEcma-262が発表され、言語にいくつかの変更が含まれています。新しいバージョンのどの機能が、より良いコードを書くのに役立ちますか?

0 投票する
16 に答える
147910 参照

javascript - JavaScriptとECMAScriptの違いは何ですか?

ECMAScriptとJavaScriptの違いは何ですか?私が推測したところによると、ECMAScriptが標準であり、JavaScriptが実装です。これは正しいです?

0 投票する
9 に答える
13244 参照

.net - ECMAScript の .NET CLR/DLR 実装はありますか?

.NET CLR/DLRを対象とする ECMAScript の実際の(つまり、ベーパーウェアではない) 実装を知っている人はいますか? 理想的には Rhino for Java のようなものです。.NET Framework / Mono Framework で動作する Rhino の確実な移植は完璧です。

言及されたプロジェクトはほんの一握りしか見たことがありませんが、実際にスクリプトを実行できたプロジェクトは見たことがありません。これが私がすでに知っていることです:

  • MSScriptControl ActiveX コントロール: 私の知る限り、これは Microsoft の最後の実際の ECMAScript 準拠の実装 (JScript 5.7 を実行) でした。私は MSScriptControl と統合しましたが、COM 相互運用がこの質問に対する答えになるとは考えていません。x64 は、このオプションのキラーです。

  • JScript.NET : JScript.NET は、実際のスクリプトを正常に解析できなかったため、数えません。閉鎖に問題があるようです。

  • マネージ JScript : 私が望むもののように聞こえますが、水中で死んでいるように見えます。これは DLR の主要な実装例でしたが、その後 SilverLight と絡み合い、2007 年以降は優先順位が薄れているようです。これに関する信頼できる情報源が役立ちます。

  • MyJScript : DLR のチュートリアル実装として構築されています。これがどれほど完全な実装か知っている人はいますか?

  • Jint : .NET 用の JavaScript インタープリター。現在のところ、カリー化または- -をサポートしていません。trycatchfinally

  • RemObjects Script for .NET : 興味深い候補がまだ開発中です。それが実際にどうなるかについては、彼らのマーケティングに混乱していますが、最終的には適合するように思えます. 誰かがそれについてもっと知っていれば、それも役に立ちます。

  • V8 for .NET : 誰かが V8 を .NET に移植した場合、これは素晴らしいことです。私の知る限り、これについても大きな努力はありません。このリンクは、マネージ C++ ラッパーから呼び出すためのアイデアへのリンクです。

背景として、.NET 内から JavaScript を実行できるようにしたいと考えています。つまり、一連のスクリプトをコンテキストにロードし、そのコンテキストを呼び出して、実行結果を取得します。現在、面倒な COM 相互運用機能を介して MSScriptControl を使用するためにフープをジャンプしています。COM には一貫性がないため、デプロイと一貫した実行の確保が非常に難しくなっています。

かなり複雑な JavaScript テスト ハーネスを .NET 内から実行できるようにしたいと考えています。これは、ユーザー マクロや単純な小さなスクリプトを作成するためのものではありません。Rhino のような実際の JavaScript 環境が必要です。実装が (COM ではなく) CLR の上で実行されている場合、これは現在の問題のいくつかを解決するのに非常に役立ちます。

0 投票する
9 に答える
24719 参照

asp.net - クライアントの CustomValidator コントロールの ErrorMessage を書き直すにはどうすればよいですか?

いくつかの異なる電話番号スキームの電話番号を検証する CustomValidator があります。クライアント側の JavaScript は次のようになります。

実際の検証は適切に行われ、CustomValidator には常に正しい IsValid プロパティがあります。ただし、sender.errormessage は、この関数呼び出しの直後にデフォルト値に書き換えられているようです。エラーメッセージの値を変更して「固定」するにはどうすればよいですか?

0 投票する
4 に答える
7411 参照

javascript - どの(javascript)環境がECMAscript 5ストリクトモードをサポートしていますか?(別名「厳密に使用」)

私がこれを書いている時点で、 ECMAScript5は最終ドラフトにあります。これは、グローバルオブジェクトへの割り当て、evalの使用、およびその他の制限を防ぐstrictモードが含まれているためです。(ジョン・レシグの記事は良い紹介です。)

この魔法の正気度保存モードは、ファイル(または関数)の先頭に「usestrict」という文字列を含めることでトリガーされます。ただし、古い環境では、「usestrict」は使用できません。「usestrict」を追加し、それを厳密な環境でテストしない場合、実際に厳密な環境に到達したときに壊れてしまう、それほど厳密ではないコードの時限爆弾を残す可能性があります。

どの環境が実際に「厳密な使用」を尊重しますか?