タグ付けされた質問 「ecmascript」

2
JavaScriptとは何ですか?
これはすべて、W3C HTML ValidatorのようなJavaScript準拠のWebページをテストする方法を探していたときに始まりました。まだ見つけていません。何か知っているなら教えてください... 公式のJavaScriptページを探して、ECMA Scriptを見つけました。これらの人々はスクリプト言語を標準化しており(JavaScriptをもう呼び出す気はありません!)、それをECMA-262(Wikipedia)と呼びました。彼らの最新の作品はEdition 5.1です JavaScriptはMozilla Corporationによって開発され、最新の安定バージョンは1.8.5(これを参照)で、ECMAのエディション5.1に基づいています リンクWikipediaのページには、方言に言及しています。MozillaのJavaScript 1.8.5は、JScript 9(IE)およびJavaScript(ChromeのV8 [ Wiki ])およびその他多くの方言としてリストされています。JavaScript 1.8.5はECMA-262の派生物であり、SpiderMonkey [ Wiki ]はそれを実行するエンジンであることを理解していますか?そして、Chromeには独自の方言があり、V8エンジンはそれを実行するプログラムですか? これらすべての方言がECMA-262に基づいているため、理解できないのは「JavaScriptとは何ですか?」真のクロスブラウザースクリプト言語はありますか?方言の相互互換性に同意するために、さまざまな実装者が集まっていますか?この取り組みはECMAですか?

3
キーがすべて文字列であるときにES6マップを使用する点はありますか?
プレーンオブジェクトキーは文字列でなければなりませんが、a Mapは任意のタイプのキーを持つことができます。 しかし、私はこれを実際にはほとんど使いません。ほぼすべての場合、とにかく文字列をキーとして使用しています。そして、おそらくnew Map()よりも遅いです{}。それではMap、単純なオブジェクトの代わりにを使用する方が良いかもしれない他の理由はありますか?

1
関数型プログラミングでジェネレーター関数は有効ですか?
質問は次のとおりです。 ジェネレーターは関数型プログラミングのパラダイムを壊しますか?なぜですか? はいの場合、ジェネレーターを関数型プログラミングで使用できますか? 以下を考慮してください。 function * downCounter(maxValue) { yield maxValue; yield * downCounter(maxValue > 0 ? maxValue - 1 : 0); } let counter = downCounter(26); counter.next().value; // 26 counter.next().value; // 25 // ...etc downCounterこの方法は、ステートレス表示されます。同様に、downCounter同じ入力で呼び出すと、常に同じ出力になります。ただし、同時に、呼び出しnext()は一貫した結果を生成しません。 この例でcounterはジェネレーターオブジェクトであるため、ジェネレーターが関数型プログラミングパラダイムを破るかどうかはわかりません。そのため、呼び出しnext()はまったく同じで作成された別のジェネレーターオブジェクトと同じ結果を生成しますmaxValue。 同様someCollection[3]に、配列を呼び出すと、常に4番目の要素が返されます。同様next()に、ジェネレーターオブジェクトで4回呼び出すと、常に4番目の要素が返されます。 より多くのコンテキストについては、これらの質問は、プログラミングカタの作業中に提起されました。質問に答えた人は、関数型プログラミングでジェネレーターを使用できるかどうか、およびジェネレーターが状態を保持するかどうかという質問を提起しました。

5
JavaScriptが従来のアプリケーション開発(コンパイル済みソフトウェア)に使用されないのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 JavaScriptを使用したWeb開発の長年の間に、信じられないほど強力な言語であるという結論に達しました。 次のような豊富な機能セットを提供します。 動的型付け 一流の機能 入れ子関数 閉鎖 メソッドとして機能 オブジェクトコンストラクターとしての機能 プロトタイプベース オブジェクトベース(ほとんどすべてがオブジェクトです) 正規表現 配列リテラルとオブジェクトリテラル 私は、この種の言語でほとんどすべてを達成できるように思えます。また、OOプログラミングをエミュレートすることもできます。 ソフトウェア指向のカスタム機能(I / O、FileSystem、入力デバイスなど)を使用すると、アプリケーションを開発するのに最適だと思います。 ただし、私が知る限り、Web開発または既存のソフトウェアでスクリプト言語としてのみ使用されています。 ごく最近になって、おそらくV8エンジンのおかげで、他の種類のタスクにより多く使用されています(たとえば、node.jsを参照)。 なぜこれまではWeb開発のみに委ねられていたのですか?ソフトウェア開発から遠ざけているのは何ですか?

3
最新のWebキットのみのWebアプリケーションでjQueryを使用することには意味がありますか?
最近、Android(2.3以降)およびiOS(4以降)用のいくつかのモバイルWebアプリに取り組んでいます。彼らのブラウザは非常に強力なECMAScript5のほとんどをサポートしており、必要なときにだけjQueryを使用して、可能な限り言語機能を使用したいと考えていました。 私がjQueryを使用する唯一のことは、のより短い代替手段を持つことですdocument.querySelectorAll。それも取り除くかもしれません。 最新のWebKitブラウザーのみをサポートする必要がある場合、jQuery(および他の汎用ライブラリー)を取り除くことは良い考えですか?結局のところ、これらは間接的なレイヤーです。 (これまでのところ、アプリはAJAX呼び出しを行う必要はありません。これは醜くなりそうなことの1つだと思います。しかし、そのためだけにjQueryを維持する価値はありますか?)

1
なぜグローバルっぽいObject.create関数を作成するのですか?
私は.NETとJavaの分野でかなり経験豊富なプログラマーであり、JavaScriptについて読み始めました。Douglas Crockfordの "The Good Parts"の本を購入しましたが、すぐにいくつかのことが気になりませんでした。 1つは、必要のない基本的な型を変更することです。 if (typeof Object.create !== 'function') { Object.create = function (o) { //Really... 'o'? For a parameter you're only using twice? function F() {} F.prototype = o; return new F(); }; } newObject = Object.create(oldObject); 明らかにこの目的で関数を作成すると便利で時間を節約できますが、なぜ地球上でオブジェクト上に作成することを勧めているのですか?3呼吸前に彼はグローバルが悪であることを支持し、それから彼はモンキーパッチオブジェクトに進みました。彼はそれがすでに存在するかどうかさえテストし、他のライブラリが彼のためにそれを行った場合の実装は同じであると仮定します。 名前空間に相当するJSでこれを作成しない理由はありますか?すなわち MY_UNIQUE_UTIL_LIBRARY.create = function(obj){...}; //The name would be shorter …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.