問題タブ [javascript-engine]
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 スクリプト エンジン
scriptEngine を使用して Java でドキュメントを呼び出そうとしています ここに私のコードがあります
それは例外をスローします
javascript - eval()キーワードはjavascriptでコンパイラの最適化をどのように正確に破りますか
eval() キーワードはレキシカル スコープをだますため (コードの実行が遅くなる)、避けるべきであると読みました。上記の例 (または誰かが持っている他の例) のコンテキストで、これがどのような種類のコンパイラの最適化を壊す可能性があるかを理解しようとしています。
行 newVar = 100; を見ると、この変数も、実行フェーズ中にエンジンによって (グローバル スコープで) 作成されます。これがレキシカルスコープを「ごまかす」ことになるとは思いません。次に、本質的に同様のことを行う eval("bar = 42;") の問題は何ですか? 質問が明確であることを願っています。
compilation - 言語エンジン VS. ランタイム VS. 仮想マシンの処理
JavaScript の人気が高まっているため、JavaScriptエンジン、JavaScript仮想マシン、または JavaScriptインタープリターのいずれかについて、同じコンテキストで同じことを参照しているのを(同じスピーチ中でも) 聞くことに興味をそそられました。
したがって、私はいくつかの調査を試みました。これらの流行語がすべて同時に共存する理由 (理由があるに違いありません) と、それらの間に実際の (わずかではありますが) 違いがあるかどうかです。
これまでに学んだことを、さまざまな情報源から要約しようとしています (次の行で引用しています)。私が間違っている/誤解を招くような場合は、お気軽に修正してください。
それらすべての実行時の義務は基本的に同じであることがわかりましたが、主な違いもいくつか見つかりました。
仮想マシンの処理
- 最も複雑です(IO、仮想命令セット なども実装します)
- 常に通訳+中間言語を含む
- さらに、コンパイルも含まれる場合があります (ジャストインタイムおよび/または動的再コンパイル)
- アプリケーションは VM プロセス内でのみスレッドとして実行されます
- ランタイム環境に結合
- 例: Java 仮想マシン、Dalvik 仮想マシン
ランタイム
言語エンジン
- より軽量
- インタープリターまたはコンパイルのいずれかを使用できます(ジャストインタイムおよび/または動的再コンパイル)
- 基盤となる環境/オペレーティング システムから切り離されている
- 例: すべての JavaScript エンジン、Zend Engine
質問:
上位のリストは正確ですか? それとも、同じ名称を使用する最も一般的なランタイム システム間の完全に偶然の類似性に基づく副産物ですか?
他にも注目すべき違いはありますか?
javascript - 自分のコードを実行している javascript エンジン、rhino または nashorn を特定するにはどうすればよいですか?
ブラウザーで JavaScript エンジンを判別する方法についていくつか質問があります。rhino と nashorn で実行する必要がある JavaScript コードを作成する必要があります。
コードが rhino または nashorn で実行されているかどうかを確認するにはどうすればよいですか? エンジンを決定できる典型的な関数、変数、定数はありますか?
javascript - JavaScript が解釈されているか、jit がコンパイルされているか
私はプログラミングが初めてです。そして、私はjavascriptに関するチュートリアルに従っています。しかし、私は jit compilar とインタープリターと混同しています。ソース コードからバイト/ネイティブ コードに変換された JavaScript です。jit コンパイラーまたはインタープリターを使用しますか? または、実行しているブラウザーと JavaScript エンジンに依存します。
ご回答ありがとうございます
firefox - Firefox が js エンジン SpiderMonkey または IonMonkey として使用しているもの
このウィキペディアの SpiderMonkey に関するページを読んだとき、私は混乱しました
現在 Firefox で js SpiderMonkey、IonMonkey、JägerMonkey、またはそれらの組み合わせに使用されているものは何ですか?
ありがとうございました
javascript - 配列要素のインデックスを取得するために JS エンジンがどのようにループするかを理解する
列に並んでいる人の名前と実際のインデックスを出力する関数を作成しました。
関数を実行すると、出力は次のようになります。
The line is currently: 1. Sarah, 2. Mike, -1. Bob
JavaScript エンジンはループをどのように解釈していますか? ボブ -1 はどうですか? 前回は 2 + 1 = 3 でした。
これを自分で修正したいのですが、この一見単純なループで何が起こっているのかを理解しようとしています。
javascript - 未知の Javascript エンジンのコードを検討する場合、実行速度とメモリ節約に最も影響を与える考慮事項は何ですか?
次に、より完全な質問は、「Javascript エンジンが (一般的なエンジンごとに) わかっている場合、これらの考慮事項はどのように影響を受けるか」ということだと思います。
TheConstructorFunction.prototype.constructor = TheConstructorFunction
私が「コミュニティ」に尋ねる必要があると思う理由は、Node.js のようなものを作成するStrongloopのような人が、util.inherits のようなコードを書いているからです。設定中:
これは私には非効率に思えますが、このようなコードの作成者とは対照的に、私は 3 年間、より優れた Javascript を作成するために努力してきました。これが効率的である、または効率的でない理由についての説明はありますか?
1 つの回答は、サブクラスの操作はまれであるため、util.inherits は非効率的ではないと述べています。しかし、一部のライブラリは、ビルドからテスト結果の観察までの間に発生する数百、数千のサブクラス操作を処理することを考慮すると、Node.js が内部で util.inherits を使用すると、そのコンシューマの開発時間に影響します。このレベルでは効率が重要であり、util.inherits が内部で使用されていないことを願っています。util.inherits の目的すら理解できません。なぜそれを持っているのですか?複利の非効率性を助長していると思います。 require('util').inherits(C1,C2);
はほとんど同義語でありC1.prototype=Object.create(C2.prototype); C1.prototype.constructor=C1;
、消費者を誘惑することだけを目的としている場合よりも遅い可能性があります。大きなライブラリはNode.jsの効率に依存するため、これらのプロがその関数を内部で使用しているかどうかが私の懸念です。作りに関しては.constructor
列挙不可能...その「列挙可能性」が問題になるケースはまれであり、消費者に任せるべきだと思いますが、内部操作がutil.inheritsに依存している場合、これは実際には消費者に任せられていません。