問題タブ [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.
java - JavaでのActionScript3.0/JavaScriptDateTimeのエミュレート
いくつかのDateTime機能をActionScript3.0からJava/Androidに移植しようとしています。私は現在、城田を見ています。このオプションを使用する前に、ECMA-262 3rd Editionに準拠したDateTimeオブジェクトの実装が実際にあるかどうか疑問に思いますか?または、これを達成するためのより良いオプション(より小さな/軽量)ソリューションはありますか?
javascript - JSON が文字列のみをキーにできるのはなぜですか?
JSON で a のみがstring
ペアのキーになるのはなぜですか? null
、number
、bool
、 、object
などの他のタイプではないのはなぜarray
ですか? JSON が JavaScript と密接に関連していることを考えると、JavaScript の仕様 (ECMA-262) からその理由を結論付けることができますか? 私は JavaScript のまったくの初心者です。指摘していただけると助かります。
javascript - ストリクトモードの不明な環境でグローバルオブジェクトへの参照を取得する
不明なホスト環境でES5strictモードでグローバルオブジェクトへのハンドルを取得するための推奨される方法は何ですか?
ECMAScriptは、私が知っているグローバルオブジェクトを参照するための組み込みの方法を提供していません。もしそうなら、これは私が探している答えです。
既知の環境では、グローバルオブジェクトは通常自己参照プロパティを持っています。グローバルオブジェクトはグローバルスコープのVOであるため、グローバルオブジェクトのプロパティはグローバル変数であり、どこからでもグローバルオブジェクトへのハンドルを取得するために使用できます。
Webブラウザーでは、
window
またはを使用できますself
。node.jsでは、を使用できます
global
。
ただし、これは必ずしもすべてのホスト環境に当てはまるわけではありません。私の知る限り、WindowsScriptHostはグローバルオブジェクトにアクセスする方法を提供していません。WSHでグローバルオブジェクトを取得するための推奨される方法はthis
、オブジェクトに解決されないコンテキストでキーワードを使用することです。例えば:
この手法は、どのホスト環境でも機能しますが、strictモードでは機能しません。これは、undefinedがstrictモードthis
でグローバルオブジェクトを参照しないためです。
これが厳密なモードコード内で評価される場合、この値はオブジェクトに強制変換されません。nullまたは未定義のこの値はグローバルオブジェクトに変換されず、プリミティブ値はラッパーオブジェクトに変換されません。関数呼び出し(Function.prototype.applyおよびFunction.prototype.callを使用して行われた呼び出しを含む)を介して渡されたこの値は、渡されたこの値をオブジェクト(10.4.3、11.1.1、15.3.4.3、15.3)に強制しません。 4.4)。
予想どおり、次のコードは次のようになりますundefined
。
では、 strictモードに関係なく、任意の環境でグローバルオブジェクトへのハンドルを取得する適切な方法は何ですか?
ちなみに、私の現在のアプローチは、次のようにグローバルオブジェクトを参照するグローバル変数をスニッフィングすることです。
...そして使用するだけglobal
です。これは多くの理由で悪い解決策だと思いますが、そのほとんどはかなり明白であり、WSHの問題に対処していません。
javascript - 厳密モードが適用されているかどうかを確認する方法はありますか?
とにかくストリクトモード'usestrict'が適用されているかどうかを確認する方法はありますか?ストリクトモード用に別のコードを実行し、非ストリクトモード用に他のコードを実行したいです。のような機能を探していますisStrictMode();//boolean
javascript - Javascript代入演算子が機能していません
log.original_fieldsは常にnullです。なぜ?
javascript - オブジェクト自体でプロパティを宣言する代わりにプロトタイプを使用する利点はありますか?
プロトタイプは、オブジェクトのクラスのプロパティとメソッドを宣言するために使用されます。プロトタイプを使用する利点の 1 つは、クラスのすべてのインスタンスがプロトタイプのプロパティとメソッドを指すため、メモリを節約できることです。
プロトタイプは、プロトタイプ チェーンによる継承に使用されます。
私の質問はとても簡単です。できるのにプロトタイプを使用する理由:
そうですか?したがって、プロトタイプの主な目的は 3 つあります。
- メモリを節約する
- 静的プロパティを提供する
- 参照型がスーパークラスから継承する唯一の方法です
javascript - ECMAScript5 準拠のコードを書く (パート 2)
私は現在、標準に準拠した (HTML5、CSS3、ESv5) ライブラリを構築することを目的として、高度な JavaScript を学習しています。途中で、どこから始めるべきか、何をすべきか、何をすべきでないか、何を避けるべきかなどを把握するために、すでにいくつかの関連する質問をしました。私はすでに ECMA-262 (ECMAScript バージョン 5) のドキュメントを読み始めています。 、開発作業を開始する前に、いくつかのテストを実行しています。
以前の質問:
JavaScript、JScript、および ECMAScript の違いは何ですか?
私の調査では、ブラウザーが異なれば標準の実装も異なり、その点で、実装するオブジェクトも異なることがわかりました。たとえば、IE は ActiveXObject というオブジェクトを実装していますが、FireFox ではそうではありません。そこで、ブラウザ内で何かが定義されているかどうかを判断する小さなテスト機能を作成しました。
いくつかの既知のオブジェクトをテストする以下を検討してください (これは組み込まれていないため、jQuery を含みます)。
繰り返しますが、私は助けが必要なポイントに達しました:
質問:
上記の例では、オブジェクトと関数の違いは何ですか?
ES/JS で関数またはオブジェクトを記述しますか?
Object がオブジェクトではなく関数であるのはなぜですか?
オブジェクト/関数に組み込まれた階層構造はありますか?
組み込みオブジェクト/関数をまったく別のものとして再定義できますか?
組み込みオブジェクト/関数を未定義にすることはできますか?
ネイティブでサポートされていない場合、組み込みオブジェクト/関数に新しい機能を割り当てることはできますか?
オブジェクトが 1 つのブラウザーで定義され、別のブラウザーでは定義されていない場合、これをどのように補正できますか?
PS 特定の実装 (JavaScript/JScript) に関する回答ではなく、標準 (ECMAScript v5) に関する回答が必要です。前もって感謝します!
javascript - Javascript に新しいキーワードを追加できますか?
私の理解では、答えは「はい」です。しかし、それが真実であると仮定すると、どうしてそれが可能になるのでしょうか?
WHATWG の設計原則 #2.1に違反していませんか? つまり、キーワードfoo
が ECMA-262 でキーワードとして追加されたとします。何年も前に書かれてデプロイされたコードでfoo
、識別子として使用される可能性があるコードは完全に壊れるのではないでしょうか?
多分私は間違っているだけで、答えはノーです。とはいえ、「新しいjavascriptキーワード」またはクエリのバリエーションをグーグルで検索すると、当然のことながら、javascriptキーワードに関する大量のがらくたが生成されるため、ここで質問するしかありませんnew
。