2
var x = "window.Something";

alert(window.x)

jsfiddle http://jsfiddle.net/XJEGU/でこのコードを試すと、 undefined と警告されます。このコードをブラウザで実行すると問題なく動作しますが、jsfiddle がこのコードを使用してそのような動作を行う方法を誰でも知ることができます。

4

2 に答える 2

7

JSFiddleは、コードを関数にラップします。これは、それxがその関数に対してローカルにスコープされていることを意味します。

そのように…"></ p> </ div> </ data> <hr> <data id =

より良い方法は、を返すことIEnumerable<string>です。yield returnメソッド内でおよびを使用yield breakして、コレクションを構築します。このようにして、アレイの作成を延期します。詳細については、こちらをご覧ください。IEnumerable拡張メソッドとlinqクエリ内でチェーンできるという利点があります。

var results = from x in GetPupilsByClass(className) where x.StartsWith("A");

どうしても完全なリストを返す必要がある場合(の怠惰な性質のためyield)、メソッドのシグネチャを次のように変更することをお勧めします。

public bool TryGetPupilsByClass(string className, out ICollection<string> pupils)

この手法には3つの利点があります。

  1. あなたの意図は明確です-戻り値が真の場合、瞳孔は初期化されます。コードのユーザーは、あなたがどのプラクティスに落ち着いたかを推測する必要はありません。
  2. もちろん、コレクションが空の場合にリストを割り当てる必要はありません。これにより、メモリの割り当てが節約されます。
  3. ICollection<string>使用しているストレージメカニズムを明らかにすることなく、強く型付けされています。戻り具象クラスは慎重に使用する必要があります。選択肢は、、、などですがIList<string>、選択したものを使用するReadOnlyCollection<string>IEnumerable<string>、ユーザーが結果に対してできることとできないことの意図がより明確になります。

XSLT 2.0の置換関数は、特殊なhtml文字を比較するときに同じ文字列を返します

HTML HelpViewer1.0用のHTMLを生成するためのXSLTを作成しています。一部のタイトルには、&lt;&gt;シーケンスが含まれています。これにより、ビューアがアングルブラケットに変換されるため、ビューアに多くの問題が発生します。Unicodeバージョンが機能することをオンラインで読んだ後(http://mshcmigrate.helpmvp.com/faq/notes10)これを行うためにreplace関数を使用しようとしましたが、結果は入力と同じです。

私が使用しているコードは次のとおりです。

replace(replace(/*/name, '&lt;', '&#60;'), '&gt;', '&#62;')

入力:

DocumentationTest.GenericClass&lt;T&gt; Namespace

次のように出力します:

DocumentationTest.GenericClass&lt;T&gt; Namespace

この出力を取得するために文字列置換を実行するにはどうすればよいですか?

DocumentationTest.GenericClass&#60;T&#62; Namespace
于 2011-08-07T08:11:45.667 に答える
1

ウィンドウに変数を埋め込もうとしている場合。このhttp://jsfiddle.net/XJEGU/3/を使用できます

于 2011-08-07T08:15:33.523 に答える