html5中双引号和单引号的区别是什么?

html5中双引号和单引号的区别是什么?,第1张

单独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实体这样的问题了。

不知道这样回答有否帮到题主。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/6118711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存