JS中的单引号与双引号

HTML中的单引号与双引号很简单,就是两个字符实体:
显示      描述         实体名称    实体编号
" 双引号、引号 " "
' 单引号、撇号 ' '
x
 
1
显示      描述         实体名称    实体编号
2
"     双引号、引号      "      "
3
'     单引号、撇号      '      '
JS中的单引号和双引号其实没啥区别,看你自己习惯了。但若双引号中再使用双引号,我们可采取"外双内单"或者"外单内双"的格式;如果需要的是双引号本身,则只能是"外单内双":
console.log("包'青'天");    //包'青'天
console.log('包"青"天'); //包"青"天
console.log("包"青"天"); //错误
x
 
1
console.log("包'青'天");    //包'青'天
2
console.log('包"青"天');    //包"青"天
3
console.log("包"青"天");    //错误
或者像JAVA中那样,用 反斜杠\ 来禁止解析双引号:
console.log("包\"青\"天");    //包"青"天
 
1
console.log("包\"青\"天");    //包"青"天

一个容易混淆的地方

比如在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<input type="button" onclick="alert("弹窗")" /> -------------------不正确
 
1
<input type="button" onclick="alert("弹窗")" /> -------------------不正确
提示出错后,再漫不经心地改为:
<input type="button" onclick="alert(\"弹窗\")" /> ----------------不正确
 
1
<input type="button" onclick="alert(\"弹窗\")" /> ----------------不正确
结果还是出错。这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
<input type="button" onclick="alert('弹窗')" />  -------------------正确
<input type="button" onclick='alert("弹窗")' /> -------------------正确
"
 
1
<input type="button" onclick="alert('弹窗')" />  -------------------正确
2
<input type="button" onclick='alert("弹窗")' />  -------------------正确
但为什么JS中的转义字符 \ 没有效果了呢?

这是因为,这段代码还是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的:
<input type="button" onclick="alert(&quot;双引号&quot;);" /> -------------------正确
<input type="button" onclick="alert(&quot;双引号");" /> -------------------正确,【&quot;】和【"】没任何区别 <input type="button" onclick="alert(&apos;单引号');" /> -------------------正确
 
1
<input type="button" onclick="alert(&quot;双引号&quot;);" /> -------------------正确
2
<input type="button" onclick="alert(&quot;双引号");" /> -------------------正确,【&quot;】和【"】没任何区别
3

4
<input type="button" onclick="alert(&apos;单引号');" /> -------------------正确

小结

注意,以下任何错误都不会对HTML解析造成影响,只是会影响JS功能(即不会执行alert方法)
<input value="外双引号内双引号-错误" type="button" onclick="alert("OK");" />
<input value="外单引号内单引号-错误" type="button" onclick='alert('OK');' />
<input value="反斜杠\+双引号-错误" type="button" onclick="alert(\"OK\");" />
<input value="反斜杠\+单引号-错误" type="button" onclick='alert(\'OK\');' /> <input value="连续两个双引号-错误" type="button" onclick='alert(""OK"");' />
<input value="连续两个单引号-错误" type="button" onclick="alert(''OK'');" /> <input value="外双引号内单引号-OK" type="button" onclick="alert('OK');" />
<input value="外单引号内双引号-OK" type="button" onclick='alert("OK");' />
<input value="外部不使用任何引号-OK" type="button" onclick=alert('OK'); />
<input value="外部不使用任何引号-OK" type="button" onclick=alert("OK"); />
11
 
1
<input value="外双引号内双引号-错误" type="button" onclick="alert("OK");" />
2
<input value="外单引号内单引号-错误" type="button" onclick='alert('OK');' />
3
<input value="反斜杠\+双引号-错误" type="button" onclick="alert(\"OK\");" />
4
<input value="反斜杠\+单引号-错误" type="button" onclick='alert(\'OK\');' />
5

6
<input value="连续两个双引号-错误" type="button" onclick='alert(""OK"");' />
7
<input value="连续两个单引号-错误" type="button" onclick="alert(''OK'');" />
8

9
<input value="外双引号内单引号-OK" type="button" onclick="alert('OK');" />
10
<input value="外单引号内双引号-OK" type="button" onclick='alert("OK");' />
11
<input value="外部不使用任何引号-OK" type="button" onclick=alert('OK'); />
12
<input value="外部不使用任何引号-OK" type="button" onclick=alert("OK"); />
2018-4-15

JS 和 HTML 中的单引号与双引号的更多相关文章

  1. js、html中的单引号、双引号及其转义使用

    js.html中的单引号.双引号及其转义使用在js中对相关字符做判断或取值的时候很多情况下都会用到这些. ------ 在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:<in ...

  2. javaScript中的单引号与双引号

    javaScript中的单引号与双引号没有什么区别.但因为xhtml规范要求所有xhtml属性要用双引号括起来.所以在javaScript中使用单引号. var html = '<h2 clas ...

  3. JS中的单引号和双引号

    JS里面的单引号和双引号可以同时使用,但是要遵循一定的准则. 最外面用了双引号了,那么里面就不能再用双引号了,因为引号是成双对的,浏览器读到一个双引号后,到第2个双引号时才算结束:同理,浏览器读到一个 ...

  4. Js参数值中含有单引号或双引号解决办法

    <script type="text/javascript"> function Display(LoginEmail, UserName, ID) {         ...

  5. java中的单引号和双引号

    1.单引号引的数据 是char类型的,双引号引的数据 是String类型的:单引号只能引一个字符,而双引号可以引0个及其以上.char只是一个基本类型,而String 可以是一个类,可以直接引用.比如 ...

  6. linux shell中,单引号、 双引号,反引号(``),$()的区别

    一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 空格在linux中时作为一个很典型的分隔符,比如 string1=this is a string,这样执行会报错.为了避免这 ...

  7. linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

    tips: ============================= IFS - LINUX字段分隔符,内部字段分隔符 IFS(Internal Field Seperator)在Linux的she ...

  8. php中的单引号、双引号和转义字符

    PHP单引号及双引号均可以修饰字符串类型的数据,如果修饰的字符串中含有变量(例$name):最大的区别是: 双引号会替换变量的值,而单引号会把它当做字符串输出. 例如: <?php        ...

  9. php中的单引号与双引号详解

    一.引号定义字符串 在Php中,通常一个字符串被定义在一对引号中,如: 'I am a string in single quotes'"I am a string in double qu ...

随机推荐

  1. h5行情k线开发

    前言         由于公司项目需要,要做港股行情的H5版本,经过分析需求,大致有两块难点: 一是行情的推送接收,二是行情K线的生成及相关操作.本文章主要分析行情K线的相关实现,由于我们前端团队之前 ...

  2. Python使用正则

    Python中使用正则的两种方式 在Python中有两只能够使用正则表达式的方式: 直接使用re模块中的函数 import re re_string = "{{(.*?)}}" s ...

  3. getJSON获取JSON文件加载下拉框及动态验证比输入项

    1.html界面 <form action="" method="get"> <div class="form-group" ...

  4. 【推导】【数学期望】【冒泡排序】Petrozavodsk Winter Training Camp 2018 Day 5: Grand Prix of Korea, Sunday, February 4, 2018 Problem C. Earthquake

    题意:两地之间有n条不相交路径,第i条路径由a[i]座桥组成,每座桥有一个损坏概率,让你确定一个对所有桥的检测顺序,使得检测所需的总期望次数最小. 首先,显然检测的时候,是一条路径一条路径地检测,跳跃 ...

  5. 2018-2019-2 20162318《网络对抗技术》Exp3 免杀原理与实践

    一.实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion),加壳工具),使用shellcode编程 2.通过组合应用各种技术实现恶意代码免杀(如果成 ...

  6. [POJ1082]Calendar Game

    题目大意: 日历上博弈,从给定的日期,按照下述规则跳转日期: 1.跳到第二天: 2.调到下个月相同的日期(如果没有就不能跳转). 刚刚好跳到2001年11月4日的人胜,跳转时不能跳到2001年11月4 ...

  7. wdcp(WDlinux Control Panel) 快速安装RPM包,lanmp一件安装

    lanmp一键安装包是wdlinux官网2010年开始推出的lamp,lnmp,lnamp(apache,nginx,php,mysql,zend,eAccelerator,pureftpd)应用环境 ...

  8. bzoj 1563

    对于很多决策单调性DP问题,我们很难(但不是不可以)证明其决策满足单调性,所以感觉很像时,可以打表看是否满足. 这道题的精度(?范围)很难搞,开始生怕溢出,看了hzwer的代码,才发现用long do ...

  9. android下前端开发诡异bug记录&解决方法

    1.border-radius有bug,围不住background 描述:设置了border-radius后,背景色依然会从圆角里冒出来 解决方法:在设置了border-radius的容器加上back ...

  10. Linux命令service - 系统服务管理(转)

    用途说明 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启(restart).查看状态(status)等.相关的命令还包括chkconfig.ntsysv等,c ...