何时在JavaScript中使用双引号或单引号?

console.log("double"); vs console.log('single'); javascript

我看到愈来愈多的JavaScript库在处理字符串时使用单引号。 是什么缘由致使一我的又一我的使用? 我认为它们几乎能够互换。 php


#1楼

做为双引号转换为单引号的一个缘由,您可能还要考虑的另外一件事是服务器端脚本的流行度增长。 使用PHP时,您能够传递变量并使用PHP中的字符串和变量解析javascript函数。 java

若是您编写一个字符串并为PHP使用双引号,则无需转义任何单引号,PHP会自动为您检索变量的值。 jquery

示例:我须要使用服务器中的变量来运行javascript函数。 程序员

public static function redirectPage( $pageLocation )
{
    echo "<script type='text/javascript'>window.location = '$pageLocation';</script>";
}

这为我省去了处理链接字符串的麻烦,并且我能够有效地从PHP调用JavaScript。 这仅是一个示例,但这多是程序员默认在javascript中使用单引号的几个缘由之一。 web

来自PHP文档的引文 :“双引号字符串的最重要特征是变量名称将获得扩展。有关详细信息,请参见字符串解析。” express


#2楼

从技术上讲,没有区别,只是样式和约定。 服务器

Douglas Crockford建议对内部字符串使用单引号,对外部字符串使用双引号(“外部”是指要显示给应用程序用户的信息,例如消息或警报)。 函数

我我的遵循。 post

更新:彷佛克罗克福德先生改变了主意 ,如今建议在整个过程当中使用双引号:)


#3楼

我但愿我没有添加明显的东西,可是我一直在为此而努力地使用DjangoAjax和JSON。

假设您在HTML代码中确实像往常同样使用双引号,那么我强烈建议对JavaScript中的其他部分使用单引号。

所以,我赞成@ady的意见,但要谨慎。

个人底线是:在JavaScript中可能不要紧,可是一旦将其嵌入HTML或相似内容中,就会开始遇到麻烦。 您应该知道其实是在转义,阅读,传递字符串。

个人简单案例是:

tbox.innerHTML = tbox.innerHTML + '<div class="thisbox_des" style="width:210px;" onmouseout="clear()"><a href="/this/thislist/'
                   + myThis[i].pk +'"><img src="/site_media/'
                   + myThis[i].fields.thumbnail +'" height="80" width="80" style="float:left;" onmouseover="showThis('
                   + myThis[i].fields.left +','
                   + myThis[i].fields.right +',\''
                   + myThis[i].fields.title +'\')"></a><p style="float:left;width:130px;height:80px;"><b>'
                   + myThis[i].fields.title +'</b> '
                   + myThis[i].fields.description +'</p></div>'

您能够在showThis的第三个字段中找到\\'。

双引号无效!

很清楚为何,可是也很清楚为何咱们应该坚持单引号.....我想..

这种状况是很是简单的HTML嵌入,该错误是由“双引号” JavaScript代码中的简单复制/粘贴产生的。

因此要回答这个问题:

尝试在HTML中使用单引号。 它可能会节省几个调试问题...


#4楼

这主要是风格和喜爱问题。 其余答案中还有一些至关有趣且有用的技术探索,所以也许我惟一要添加的就是提供一些世俗的建议。

  • 若是您在公司或团队中编码, 那么遵循“房屋风格”多是一个好主意。

  • 若是您独自一我的攻克一些附带项目, 那么看看社区中的一些杰出领导人。 例如,假设您进入Node.js。 看一下核心模块,例如underscore.js或express,看看它们使用什么约定,并考虑遵循。

  • 若是两种约定均被使用, 则请遵循您的我的习惯
    偏心。

  • 若是您没有我的喜爱, 那就掷硬币。

  • 若是您没有硬币, 啤酒就在我身上;)


#5楼

让咱们看一下参考的做用。

在jquery.js中,每一个字符串都用双引号引发来。

所以,从如今开始,我将使用双引号引发来的字符串。 (我正在使用单身!)

相关文章
相关标签/搜索