2013-07-12 47 views
7

私はいつもJavaScriptの書き込みスタイルを見ていますが、なぜこのようなコードがわかりません。 たとえば、変数があります。javascriptの一重引用符または二重引用符

私がjavascriptを学んだとき、私はこのようなjQueryでコード化された人を見ました。

:contains("' + topic + '") 

でも、このようにコードすることができます。

:contains(topic) 

または :( "トピック")が含まれ

何3以上との違い?

+0

重複:http://stackoverflow.com/questions/242813/when-to-use-double-or-single-quotes-in-javascript –

+0

@JamieHutber重複しているとは思わない –

+0

私は全体のコードは '.find( ':contains("' + topic + '")')'のようなものでした。 –

答えて

6
:contains("topic") 

それは「コミュニティ」を含む要素のために捜しますので、ここで

var topic = "community"; 
:contains(topic) 

トピックが..「コミュニティ」になると「トピック」の文字列

が含まれている要素のためのこの検索。これは

$('div:contains("community")')..; //<-- just to make sure the string is encoded with `""` 
+0

第2のケースではありませんコミュニティを含む要素を表示するのではなく、CSSの構文エラーですか? (CSSは文字列の引用を必要としない?) – slebetman

+0

@slebetmanいいえ。クォートなしでURLやものを渡すことができますが、厳密にはCSSではなく、CSSのようなAPIを提供するjQueryで使用されるSizzleセレクターエンジン – Bojangles

0

:contains("' + topic + '")は、文字列を検索しますとなり

$('div:contains("' + topic + '")')..; //div for example sake 

私は、コードが不完全であると思います。この

:contains("' + topic + '") 

のためだけでなく

..「(話題のVALUE) '、一重引用符を含みます。

:contains(topic) 

は、周囲の引用符を含まないトピックの値を検索します。

:contains("topic") 

文字通りトピックを検索します。

0

一重引用符と二重引用符の間に違いはなく、どちらも要素を文字列としてマークするために使用されます。実際従って引用符は、プログラムのためにエスケープする必要があり、変数ではなく文字列を、参照

contains("' + topic + '") 

トピック:

var s = "hello" 
var m = 'hello' 
m === s // true 

他の例は、の場合には、文字列をエスケープを意味します変数の値にアクセスします。それ以外の場合は、変数topicの値を読み取るのではなく、単に文字列 "topic"を出力します。二重引用符対

0

単一引用符は、通常、文字列置換が起こるかどうかに関係していますが、JSでそれが問題としてこれまで私は

3の違いを知っているようにしない最初の1であるということです文字列の置換が行われる変数の代入。二つ目は、引数として文字列を通過し、3つ目はそうここで変数または定数トピック

var topicOne = "Community1"; 

function write(toOutput) { 
    document.write(toOutput); 
} 

write(topicOne); 
write("topicOne"); 
write('topicOne'); 

を通過しているもの3意志出力である:PHPで

Community1 
topicOne 
topicOne 

が同じコード二重引用符は、文字列置換

<?php 
$topicOne = "community1"; 
$topicTwo = "community2$topicOne"; 


function write($toOutput) { 
    print $toOutput; 
} 
write($topicOne); 
write("$topicOne"); 
write('$topicOne'); 
write($topicTwo); 
write("$topicTwo"); 
write('$topicTwo'); 
?> 

異なる出力を生成します意味ので、異なる動作します
community1 
community1 
$topicOne 
community2community1 
community2community1 
$topicTwo 

ここで違いがわかりますか?

関連する問題