JS 和 HTML 中的单引号与双引号

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;双引号&#34;);" /> -------------------正确,【&quot;】和【&#34;】没任何区别

<input type="button" onclick="alert(&apos;单引号&#39;);" /> -------------------正确
 
1
<input type="button" onclick="alert(&quot;双引号&quot;);" /> -------------------正确
2
<input type="button" onclick="alert(&quot;双引号&#34;);" /> -------------------正确,【&quot;】和【&#34;】没任何区别
3
 
          
4
<input type="button" onclick="alert(&apos;单引号&#39;);" /> -------------------正确

小结

注意,以下任何错误都不会对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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值