問題タブ [language-theory]
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.
c# - instanceof/is が優先される理由
C#/Java の両方で、is
それぞれの演算子の優先順位によりinstanceof
、醜い必要な括弧が発生します。たとえば、書く代わりに、書くif (!bar instanceof Foo)
必要がありますif (!(bar instanceof Foo))
。
では、なぜ言語チーム!
は is/instanceof よりも演算子の優先順位が高いと判断したのでしょうか? 確かに C# では、状況によっては別の結果につながる上書きが可能ですがoperator!
、そのような状況は非常にまれなようです (いずれにせよ直観的ではありません)。可能性が高くなります。
javascript - Google が Javascript クロージャが危険であると主張するのはなぜですか?
Google JS スタイル ガイドのこのポイントを読みました: http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml?showone=Closures#Closures
私はそれを完全には理解していません。element.onclick には機能が割り当てられていますが、すべて問題ありません。ガベージ コレクションはありませんが、まだオブジェクトを使用しているので問題ありません。
割り当てたら
その後、要素がそれを指していないため、閉鎖はガベージコレクションされます。問題はどこですか?
scala - scala での infix の振る舞いを理解する
これをここで質問するか、 Programmersで質問するかはわかりませんでしたが、とにかく
Scala では、中置構文を使用してメソッド呼び出しを記述することができます。つまり、ドットと括弧を省略できます。
例として、これを行うことができます:
lst map _.toString
当然のことながら、は に評価されると想定されますlst.map(_.toString)
。これは、lst.map(x$1 => x$1.toString)
しかしlst map _.toString
、repl に落とし込むと驚くべき結果が得られ((x$1) => sList.map(x$1.toString))
、メソッド呼び出しが誤動作する原因と評価されます。
では、それはなぜでしょうか。a.f(b)
と同等であるという単純なルールがa f b
、書くときに適用されなくなったのはなぜa f _.b
ですか?
javascript - オブジェクトのプロパティは JavaScript で宣言する必要がありますか?
JS 関数ではresultModel
、 と の 2 つのプロパティidArray
を持つ object を使用しますnameArray
。これを宣言する適切な方法は何でしょうか?
現在、関数の先頭で他の変数と一緒にオブジェクトを宣言していますvar resultModel
が、プロパティは、関数の後半のループで値を割り当てることで使用を開始するだけです。
もちろん、var
スコープにとってキーワードが重要であることはわかっています。関数内で「ルート」識別子が宣言されているため、グローバルな改ざんを回避できます。これで問題ありません。しかし、スコーピング以外の理由で、値のプロパティも実際に何らかの方法で宣言する必要があると期待しています-メモリ割り当て、おそらくJSDocコメントによるタイプヒント、読みやすさ、および宣言の完全性が思い浮かびます。
したがって、私の質問は次のとおりです。そのようなプロパティを宣言する必要がありますか?その場合、それを行う適切な方法は何でしょうか?
grammar - 文脈自由文法を使用して XML のような要素を定義できないのはなぜですか?
文脈自由文法 (Chomsky、EBNF、または構文図) を使用して XML のような要素を定義できない理由を誰か説明してもらえますか?
regex - a と偶数個の b を含む文字列の正規表現
次の言語を特徴とする正規表現を定義する方法は?
L = {w ∈ {a, b}* | w の b は偶数です}
関連するオートマトンを作成しようとしました:
それから、アルゴリズムを適用してDFAから正規表現を取得しようとしたところ、次の式が得られましa*ba*b
た。
これが正しい答えでしょうか?