在javascript中单引号或双引号

时间:2013-07-12 06:51:30

标签: javascript jquery

我总是在javascript中看到写样式,但我不知道为什么这样的代码。 例如,我有一个变量。

   var topic = "community";

当我学习javascript时,我看到有人用jQuery这样的代码编写了一些代码。

 :contains("' + topic + '")

但我认为它可以像这样编码。

  :contains(topic)

或者      :含有( “主题”)

以上三者之间有什么区别?

4 个答案:

答案 0 :(得分:6)

:contains("topic")

搜索包含" topic"的元素串

其中

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

此处的主题变为"社区" ..因此它会搜索包含" community&#34 ;;

的元素

很好的这个

:contains("' + topic + '")

我猜代码不完整..

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

这变成了

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

答案 1 :(得分:0)

:contains("' + topic + '")将查找字符串'(主题的值)',包括单引号。

:contains(topic)

将查找主题的值,没有周围的引号。

:contains("topic")

将寻找字面上的主题。

答案 2 :(得分:0)

单引号和双引号之间没有区别,两者都用于将元素标记为字符串。

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

另一个例子是指在以下情况下转义字符串:

contains("' + topic + '")

主题实际上引用了一个变量而不是一个字符串,因此必须对引号进行转义,以便程序能够访问变量的值。否则它不会读取变量主题的值,而只是打印字符串“topic”。

答案 3 :(得分:0)

单引号与双引号通常与字符串替换是否会发生有关,但在JS中,据我所知并不重要

3之间的区别在于第一个是变量赋值,其中可以发生字符串替换。第二个是传递一个字符串作为参数,第三个传递变量或常量主题

var topicOne = "Community1";

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

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

所以这是3将输出的内容:

Community1
topicOne
topicOne

在PHP中,相同的代码将采取不同的行为,因为双引号意味着字符串替换

<?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

看看差异在哪里?