問題タブ [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 に答える
3248 参照

javascript - ECMAScript第4版が完全に廃棄されたのはなぜですか?

私は、SOでさえ、あまり成功せずに廃棄されたECMAScript4thEditionに関するいくつかの情報を探していました。私はMozillaのJavaScript1.7が第4版で提供される新機能の多く(すべて?)を実装していることを知っており、John Resigの良い投稿を覚えていると思いましたが、彼のブログでは今は見つかりません。

特に、ECMA-262 5th Editionを優先して完全に廃棄された理由と、単に改善されなかった理由を知りたいと思います。ジェネレーター、イテレーター、let、新しい代入演算子、(私の特にお気に入りの)代入の破棄など、いくつかの機能は非常に優れています。

これらの特定の機能はすべて、古いECMAScript実装を備えたブラウザーでエラーをスローするだけであることを知っていますが、いずれにせよ、これらの実装がほとんどないという知識を持って、それらを含めてみませんか?他にも理由はありましたか?廃止された機能の一部が将来のリリースで再び表示される可能性がありますか、それともベンダーが互換性を壊すことを恐れているため、標準に対するそのような改善はおそらく見られないでしょうか?

余談ですが、この問題についていくつかの意見を知っておくといいでしょう。第5版からいくつかの機能が削除されているのを見てイライラしますか、それともこの方法の方が良いと思いますか?ECMAScript 4の実装を試してみる価値はありますか?

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

javascript - ECMAScript5 では、"use strict" の範囲は?

ECMAScript5 では、strict モード プラグマにはどのようなスコープがありますか?

私はこれをしたいと思います(主にJSLintがそれについて文句を言わないため):

しかし、それが他のコードを壊すかどうかはわかりません。私はこれを行うことができることを知っています。これにより、プラグマが関数にスコープされます...

しかし、JSLint は、「use strict」を有効にする前にコードを実行していると見なすため、(「strict」JSLint オプションが有効になっている場合) 文句を言います。

これが私の質問です。fileA.js がある場合:

および fileB.js:

そして、それらを同じ順序でhtmlページに含めます。プラグマはファイルにスコープされますか、それともプラグマはfileBに流れ込み、evalの実行をブロックしますか?

0 投票する
2 に答える
1155 参照

javascript - 名前空間が ECMAScript の考慮事項から削除されたのはなぜですか?

名前空間はかつて ECMAScript (古い ECMAScript 4) の考慮事項でしたが、取り除かれました。ブレンダン・アイヒがこのメッセージで言っているように:

ES4 での名前空間の使用例の 1 つは、パフォーマンスとプログラマーの理解の両方のために早期バインディング (名前空間組み込みを使用) でした。ランタイムの名前バインディングが以前のバインディングと一致しない可能性はありません。ただし、Web のような動的コード読み込みシナリオでの早期バインディングには、早期バインディングと遅延バインディングの競合を回避するための優先順位付けまたは予約メカニズムが必要です。

さらに、一部の JS 実装者が懸念を持って指摘しているように、複数のオープンな
名前空間は、実装が
大幅に機能しない限り、ランタイム コストを課します。

これらの理由から、名前空間と早期バインディング (
この 4 月より前のパッケージなど) は廃止する必要があります。

しかし、そのすべてを理解しているかどうかはわかりません。優先順位付けまたは予約メカニズムとは正確には何ですか? また、それらのいずれかが必要になるのはなぜですか? また、事前バインディングと名前空間は連携する必要がありますか? どういうわけか、関連する問題に頭を悩ませることができません。誰かがより肉付けされた説明を試みることができますか?

また、名前空間がランタイム コストを課すのはなぜですか? 私の考えでは、名前空間とクロージャーを使用する関数の概念にほとんど違いが見られません。たとえば、Yahoo と Google はどちらも YAHOO と google のオブジェクトを持っており、これらのオブジェクトはすべてのパブリック変数とプライベート変数、関数、およびオブジェクトを 1 つのアクセス ポイント内に格納するという点で名前空間のように機能します。では、なぜ名前空間の実装がこれほど大きく異なるのでしょうか? 名前空間とは何かについて、私が誤解しているだけかもしれません。

賞金のために、私は2つのことを知りたいです:

  1. 名前空間には事前バインディングが必要ですか?
  2. 名前空間の実装は、プライベート メンバーを持つオブジェクトとどのように異なりますか?
0 投票する
7 に答える
749 参照

javascript - JavaScript の種類

http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdfによると、JavaScript には 、 、 、 、 の 6 つundefinednullタイプbooleanstringありnumberますobject

質問1:

objectの代わりにnull 型が使用されるのはなぜnullですか?

質問2:

関数はどうですか?

変数fの型はfunctionです。別のタイプとして仕様で指定されていないのはなぜですか?

ありがとう、

0 投票する
2 に答える
224 参照

java - Ecmascript (Java、javascript、Actionscript) の知識を Objective C に翻訳する

Objective C の初心者であり、ecmascript ベースの言語から知っている概念と構文を Objective C に翻訳しようとしています。

ObjectiveC の .h ヘッダー ファイルを Actionscript のインターフェイスと考えるのは適切ですか?

2 つの引数を含むメソッドを呼び出す Objective C の次のコード例を見てみましょう。

Actionscript(またはjavascript)では、これは「myTextObject」で2つのアクセサメソッドを呼び出すのと同じでしょうか? すなわち

0 投票する
1 に答える
977 参照

javascript - ECMAScript言語仕様関数呼び出しセクションと混同

ECMAScript言語仕様の関数呼び出しセクションを読んでいます

誰かが私のために次の感覚を言い換えたり詳細に説明したりできますか?

本番のCallExpression:MemberExpression引数は、次のように評価されます。

  1. MemberExpressionを評価します。

このコードを例として取り上げましょう。

上記のコードを例にとると、本番CallExpressionはどういう意味ですか?この場合のMemberExpression、john.greetとは何ですか?

ありがとう!

0 投票する
7 に答える
1605 参照

c# - C# と ECMAScript の仕様で読みやすさに大きな違いがあるのはなぜですか?

私は ECMAScript 仕様を研究してきましたが、非常に読みにくく理解しにくいことがわかりました。概念を頭の中で維持するために、常に後戻りする必要があります。C# の仕様を読んでいると、常にドキュメントを移動しなくても、言語のコンポーネントを学ぶことができます。

ECMAScript 仕様

C# 仕様

0 投票する
2 に答える
168 参照

javascript - ObjectiveC から ECMAscript へ

Objective C に関する優れた Apress の本を読んでいます。私の理解を助けるために、Java/Action-script で Ojective C のコード サンプルを再コード化しようとしています。ObjC のメソッド呼び出しに共通する構造の 1 つは、私を少し困惑させます。

(ECMAscript で)これは、複数の引数を持つ 1 つのメソッド呼び出しまたはそれぞれ 1 つの引数を持つ 2 つのメソッド呼び出しに最も似ていますか?

0 投票する
1 に答える
283 参照

c# - ECMAScript文法のこの部分を翻訳するのに助けが必要ですか?

私はかなり前からECMAScriptの独自の実装に取り​​組んできました。私は基本的にすべてを手作業で行い、プロセスを深く理解できるようにしています。文法のこの部分を分析して理解するための繰り返しの試みは失敗したので、私はプロジェクトの他の部分に取り組んできましたが、今はオブジェクトリテラルに取り組んでいるので、構文アナライザーを磨く必要があります。誰かがこれを言語パーサーの初心者が理解できる言葉で表現できますか?

私の最大の混乱の原因は次のとおりです。

新しいMemberExpression引数

これはメンバー式であると想定されていますが、これは次のように矛盾しているようです。

新しい式はメンバー式ですか、それとも左側式ですか?正直なところ、具体的な文法に適したC#クラスをレイアウトするのに苦労しています。

これは私が取り組んできたクラスの設計ですが、仕様を研究し続けると、私の疑問は消えません。

アンディの答えに基づいて、私は理にかなっている新しいデザインを思いつきました。