HTML、JavaScript、PHP 中的单引号与双引号
共同点:单引号和双引号都是用来标识字符串,并且成对出现。
一、HTML 中的单引号与双引号
单独的HTML标签,单引号和双引号没有区别,甚至不需要它们来标识字符串。
<html> <head> <meta charset="utf-8" /> </head> <body> <input type=submit value=提交1 /> <!-- 正确(不推荐) --> <input type='submit' value='提交2' /> <!-- 正确 --> <input type="submit" value="提交3" /> <!-- 正确 --> </body> </html>
在HTML中,像“<”和“>”这类符号已经用来表示HTML标签,不能直接使用。为了能在文件中使用这些字符,就定义了它们的转义字符(转义字符也称为字符实体)。当HTML解释程序遇到这些转义字符,就把它解释为真实的字符。在输入转义字符时,要严格遵守字母大小写的规则。另外,有些字符不在ASCII字符集中,也需要使用转义字符来表示。
最常用的字符实体有:
显示 | 说明 | 实体名称 | 实体编号 | |
< | 小于 | < | < | |
> | 大于 | > | > | |
& | &符号 | & | & | |
" | 双引号 | " | " | |
' | 单引号 | ' | ||
半角空白 |   |   | ||
全角空白 |   |   | ||
不断行空白 | |   | ||
© | 版权 | © | © | |
® | 已注册商标 | ® | ® | |
™ | 商标(美国) | ™ | ||
× | 乘号 | × | × | |
÷ | 除号 | ÷ | ÷ | |
± | ± | ± | ||
¥ | ¥ | ¥ |
字符实体使用示例:
<html> <head> <meta charset="utf-8" /> </head> <body> <input type=submit value=<提交1> /> <!-- <提交1> --> <input type='submit' value='"提交2"' /> <!-- "提交2" --> <input type="submit" value="提交×3" /> <!-- 提交×3 --> </body> </html>
二、JavaScript 中的单引号与双引号
单引号和双引号都是用来标识字符串,没有区别。
同HTML一样,为了表示那些不能直接使用的字符、不能显示的特殊字符,也定义了它们的转义字符。
常用的转义字符有:
转义字符 | 含义 | |
\b | 退格符 | |
\t | 制表符(水平) | |
\v | 制表符(垂直) | |
\n | 换行符 | |
\r | 回车符 | |
\" | 双引号 | |
\' | 单印号 | |
\\ | 反斜杠 | |
\uhhhh | 十六进制编码的Unicode字符 |
转义字符使用示例:
console.log('This is 科比'); // This is 科比 console.log("This is 泰森"); // This is 泰森 console.log('This is "凯文"'); // This is "凯文" console.log("This is '德隆'"); // This is '德隆' console.log('This is \'詹姆斯\''); // This is '詹姆斯' console.log("This is \"布雷克\""); // This is "布雷克" console.log('This is \"勒布朗\"'); // This is "勒布朗" console.log("This is \'安德烈\'"); // This is '安德烈' console.log('This is \\卡梅隆\\'); // This is \卡梅隆\
在JavaScript和HTML混合编程的情况下,一定要区分清楚这段代码是归HTML管辖范围,还是JavaScript管辖范围?不同的管辖范围,使用不同的转义字符。
<html> <head> <meta charset="utf-8" /> </head> <body> <!-- 错误:外双引号、内双引号 --> <input value="按钮1" type="button" onclick="alert("按钮1");" /> <!-- 错误:外单引号、内单引号 --> <input value="按钮2" type="button" onclick='alert('按钮2');' /> <!-- 错误:JavaScript转义双引号 --> <input value="按钮3" type="button" onclick="alert(\"按钮3\");" /> <!-- 错误:JavaScript转义单引号 --> <input value="按钮4" type="button" onclick='alert(\'按钮4\');' /> <!-- 正确:双引号嵌套单引号 --> <input value="按钮5" type="button" onclick="alert('按钮5');" /> <!-- 正确:单引号嵌套双引号 --> <input value="按钮6" type="button" onclick='alert("按钮6");' /> <!-- 正确(不推荐):外面没有使用引号 --> <input value="按钮7" type="button" onclick=alert('按钮7'); /> <!-- 正确(不推荐):HTML转义字符 --> <input value="按钮8" type="button" onclick="alert("按钮8");" /> </body> </html>
三、PHP 中的单引号与双引号
单引号和双引号都是用来标识字符串,但在PHP对单引号和双引号的处理是不同的。双引号会解析字符串中的变量,单引号不会;双引号会解析全部转义字符,单引号只解析单引号和反斜杠;双引号解析速度慢,单引号解析速度快。
常用的转义字符有:
转义字符 | 含义 | |
\t | 制表符(水平) | |
\v | 制表符(垂直) | |
\n | 换行符 | |
\r | 回车符 | |
\" | 双引号 | |
\' | 单印号 | |
\\ | 反斜杠 | |
\$ | 美元符号 |
示例代码如下:
<?php $a = 'C语言'; $b = 'PHP'; //解析变量 echo "欢迎访问$a中文网<br>"; // 欢迎访问 【错误】 echo "欢迎访问{$a}中文网<br>"; // 欢迎访问C语言中文网 echo "$b 是世界上最好的语言<br>"; // PHP 是世界上最好的语言 //解析转义字符 echo "\"\$a\" 的值为:$a<br>"; // "$a" 的值为:C语言 echo '\'$b\' 的值为:' . $b; // '$b' 的值为:PHP
是否注意到标有错误的一行?
需要注意的是,虽然双引号定义的字符串能够解析变量,但是如果变量后边还有字符串的话,就需要将变量与后面的字符串使用空格分开,或者使用大括号{ }将变量包裹起来。如果不这么做的话,很可能会造成意想不到的结果。
上面的错误就是把“ $a中文网 ”当成 一个变量了,而这个变量并不存在!