console.log("double");
vs console.log('single');
javascript
我看到愈来愈多的JavaScript库在处理字符串时使用单引号。 是什么缘由致使一我的又一我的使用? 我认为它们几乎能够互换。 php
做为双引号转换为单引号的一个缘由,您可能还要考虑的另外一件事是服务器端脚本的流行度增长。 使用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
从技术上讲,没有区别,只是样式和约定。 服务器
Douglas Crockford建议对内部字符串使用单引号,对外部字符串使用双引号(“外部”是指要显示给应用程序用户的信息,例如消息或警报)。 函数
我我的遵循。 post
更新:彷佛克罗克福德先生改变了主意 ,如今建议在整个过程当中使用双引号:)
我但愿我没有添加明显的东西,可是我一直在为此而努力地使用Django , Ajax和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中使用单引号。 它可能会节省几个调试问题...
这主要是风格和喜爱问题。 其余答案中还有一些至关有趣且有用的技术探索,所以也许我惟一要添加的就是提供一些世俗的建议。
若是您在公司或团队中编码, 那么遵循“房屋风格”多是一个好主意。
若是您独自一我的攻克一些附带项目, 那么看看社区中的一些杰出领导人。 例如,假设您进入Node.js。 看一下核心模块,例如underscore.js或express,看看它们使用什么约定,并考虑遵循。
若是两种约定均被使用, 则请遵循您的我的习惯
偏心。
若是您没有我的喜爱, 那就掷硬币。
若是您没有硬币, 那啤酒就在我身上;)
让咱们看一下参考的做用。
在jquery.js中,每一个字符串都用双引号引发来。
所以,从如今开始,我将使用双引号引发来的字符串。 (我正在使用单身!)