2016-03-30 6 views
-3

変数にアンパサンドを渡す方法がわかりません(書籍& Cdsなど)。私はBooks%26CdsとBooks \ & Cdsを試しましたが、成功しませんでした。私は構文エラーを取得し続けます。正しい構文は何ですか?私は数時間のためにgoogledしかし、まだ希望。下のサンプルを抽出してください。前もってthnks。function-javascript内の変数にアンパサンドを渡す方法

function configureDropDownLists(category,allsalerentname) { 
var Lessons_in_rhymes = ['Kids']; 
var Books & Cds = ['Kids']; 
. 
. 
. 
} 
+1

変数名にはスペースや '&'は使用できません。 –

+0

できません。特殊文字は、関数で使用される文字(&はプログラミングロジックに使用される)と見なされるため、変数名には使用できません。ただ別の名前を使用してください。 – Jorrex

+0

あなたは何をしようとしていますか? – Adjit

答えて

0

コメントは&という文字は可変識別子として不正です。さらに、あなたの例では、スペースもありますが、これも可変識別子では不正です。 しかし、&とスペース文字の両方がプロパティ識別子で受け入れ可能です。あなたはこれらの文字を含む変数を持つことはできませんが、あなたはこのように、オブジェクトのプロパティを持つことができます:

var obj = {}; 
var prop1 = "Books & Cds"; 
obj[prop1] = "Kids"; 

あなたは、それを作成するために使用したのと同じブラケット記法とそのプロパティの値を取得します。これはあなたのユースケースのために働くだろう

console.log(obj[prop1]);   // "Kids" 
console.log(obj["Books & Cds"]); // "Kids" 

わからない場合、それは行うことができます:あなたは、変数を使用するかは、リテラル値、いずれかの方法を使用することができ、ブラケット表記を使用するときは、文字列を提供する必要があります。

ここでのコードは、実施例では、上記の:

 var obj = {}; 
 
    var prop1 = "Books & Cds"; 
 
    obj[prop1] = "Kids"; 
 

 

 
    console.log(obj[prop1]);   // "Kids" 
 
    console.log(obj["Books & Cds"]); // "Kids"

+0

ありがとう@スコットマーカス..あなたはかなり経験しています.. – kmaJJ

+0

笑varialeの名前とdict key;) –

+0

私が示したところでは、プロパティ名が動的でこれらの文字を含むことができる解決策を作成するために、ブラケット表記をオブジェクトに活用しています(JSでは辞書型がありません)。私の答えは、すべてのユースケースで適切ではないかもしれませんが、JS言語の柔軟性とその構文の優れた知識が、表面上可能なようには見えない解決策を提供する方法についての洞察を提供します。最後に、あなたが私の投稿を読んでいれば、私が明示していることは、変数ではなくプロパティ識別子であることを明示したことになります。 –

-1

その不可能、一部の文字は、%、*、(、)、空白などの変数名(では違法であるため、 )

JS variable name validator

+0

私の答えが説明するように、それは不可能ではありません。 –

+0

それは不可能で、ちょうどあなたが変数名と辞書のキーであるかわかりません;)あなたの変数名はobjであり、そのdict型です... –

+0

最初に、JavaScriptの辞書型はありません - それはオブジェクトです。第二に、私の変数はprop1です。第3に、括弧表記法は動的なプロパティ名を使用することを可能にします。これは全体のポイントです。第四に、私が示していることが変数ではなく、代わりにプロパティ識別子であることを明確に述べていませんか?最後に、私の答えは、OPの問題を解決するための回避策を示していますか?はい、そうです。したがって、OPがやりたいことは不可能ではありません。 –

関連する問題