JS中,单引号和双引号其实没啥区别,看你自己习惯了。
但若双引号中再使用双引号,我们可采取"外双内单"或者"外
单
内
双
"的格式,当然如果需要的是双引号本身,则只能是
"外
单
内
双
"
console.log("包'青'天"); //包'青'天
console.log('包"青"天'); //包"青"天
console.log("包"青"天"); //错误
或者用反斜杠来禁止解析双引号:
console.log("包\"青\"天");
但如下情况需要明白:
在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
<
input
type=
"button"
οnclick=
"
alert
(
"
1")" /> -------------------不正确
IE提示出错后,再漫不经心地改为:
<
input
type=
"button"
οnclick=
"
alert
(\
"
1\")" /> ----------------不正确
结果还是出错。
这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
<
input
type=
"button"
οnclick=
"
alert
(
'1'
)
"
/
>
-------------------正确
但为什么javascript中的转义字符\没有效果了呢?
这是因为,这段代码还是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的。
<
input
value=
"双引号"
type=
"button"
οnclick=
"
alert
("双引号&#
34
;);
"
/>
-------------------正确
<
input
value=
"单引号"
type=
"button"
οnclick=
"
alert
('单引号&#
39
;);
"
/>
-------------------正确
小结
<input value="外双引号内双引号-错误" type="button" οnclick="alert("OK");" />
<input value="外单引号内单引号-错误" type="button" οnclick='alert('OK');' />
<input value="两个双引号-错误" type="button" οnclick="alert(""OK"");" />
<input value="两个单引号-错误" type="button" οnclick="alert(''OK'');" />
<input value="反斜杠\+双引号-错误" type="button" οnclick="alert(\"OK\");" />
<input value="反斜杠\+单引号-错误" type="button" οnclick="alert(\'OK\');" />
<input value="外双引号内单引号-OK" type="button" οnclick="alert('OK');" />
<input value="外单引号内双引号-OK" type="button" οnclick='alert("OK");' />
<input value="外部不使用引号-OK" type="button" οnclick=alert('OK'); />
注:内部使用HTML的单引号或双引号转移字符时,都是可以的