单独html标签时,单引号和双引号区别:
<html>
<head>
</head>
<body>
<input type = submit value = 提交1>
<input type = "submit" value = "提交2">
<input type = 'submit' value = '提交3'>
</body>
</html>
输出完全一样,故在纯html标签下以上三种写法是完全等效的。
2. 在JS混编情况下html标签的双引号和单引号区别:
转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当作文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
html5中双引号和单引号的区别:1、单引号和双引号都可以作为字符串的开始符和关闭符,并且只能同一种单或者双引号来定义开始和结束;单引号之间的字符都被认为是字符,即使是转义符\和变量符$,例外的是\’标识单引号。
2.双引号之间的字符是需要php解析的,包括$,\,{都保留了php赋予的特殊含义。
3." "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出;而' '单引号里面的不进行解释,直接输出。
例如:
$abc='my name is tome'
echo $abc //结果是:my name is tom
echo '$abc' //结果是:$abc
echo "$abc" //结果是:my name is tom
特别在使用MYSQL语句的时候,双引号和单引号的用法让新手不知所措,在这里,举个例子,来进行说明。
假设查询条件中使用的是常量,例如:
select*fromabc_table where user_name='abc'
SQL语句可以写成:
SQLstr = "select*from abc_table where user _name= 'abc'"
假设查询条件中使用的是变量,例如:
$user_name = $_REQUEST['user_name']//字符串变量
或
$user=array ("name"=>$_REQUEST['user_name‘,"age"=>$_REQUEST['age']//数组变量
SQL语句就可以写成:
SQLstr = "select*from abc_table where user_name = ' " . $user_name . " ' "
SQLstr = "select * from abc_table where user_name = ' " . $user["name"] . " ' "
对比一下:
SQLstr="select * from abc_table where user_name = ' abc ' "
SQLstr="select * from abc_table where user_name =' " . $user _name . " ' "
SQLstr="select * from abc_table where user_name =' " . $user["name"] . " ' "
SQLstr可以分解为以下3个部分:
1:"select * from table where user_name = ' " //固定SQL语句
2:$user //变量
3:" ' "
1,2,3部分字符串之间用"." 来连接
字面上来说,单引号也是,但是做前端的同仁不会这样考虑问题。
首先,onclick=,其后面的引号中应该是完整的js代码,那么在此之中的所有代码都会转到js的语境下处理,放进去的单/双引号也如此(多说一句,单/双引号括起来的表示字符串常量,没有单/双引号则表示双引号内其他处的变量)。
既然在js的语境下,那么用双引号也是可以表示字符串常量的,那么我们就试着把双引号内的单引号换成双引号,好了,问题来了,在此处到双引号外部为止都是处在html语境下,html语境下的四个双引号,就把onclick的js表达式切成了两部分,于是js被切开,报错。
单引号的引入,让html语境下的js代码部分,在通过双引号转移到js语境之后,任然可以被识别为引号,事实上就是为了解决2中引号内还有引号的问题。
ps:转义的原意,是为了在HTML语境下转义,而非js语境下。经过转换后,在js语境下就任然是双引号,可以被js解释器来处理。甚至可以是4个双引号全换为单引号,只要把中间的两个单引号转义,结果依然是一样的。那么这就不必要问引号是否是html实体这样的问题了。
不知道这样回答有否帮到题主。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)