单引号和双引号详解
一、js中单双引号详解
1、转义:消除紧随其后的字符的原有含义,作用:禁止解析
2、html、js、jq中单双引号作用一样
3、js中引号的嵌套只能有一层(且必须交替使用),实现多重嵌套需要用转义字符
4、相同引号连续使用时,内层引号用转义字符禁止解析
5、js是弱语言,单双引号单独使用时无任何区别,混用时要加以区分
6、html转义字符和js转义字符不同,js转义字符是反斜杠\
实例:
页面中 onclick="date({dateFmt:"yyyy-mm-dd"})" -----------语法错误 添加转义字符 onclick="date({dateFmt:\"yyyy-mm-dd\"})" ----------------错误 :js在html的作用中转义字符\无效 添加html转义字符 onclick="date({dateFmt:"yyyy-mm-dd"})" -----------正确
7、单双引号转义必须交替进行
实例: '<a href = "javascript:do('something');">'---------语法错误,这时候something前的单引号会成为整个字符串的结束 。 解决方法:嵌套两层,第二层必须转义 '<a href = "javascript:do(\'something\');">' 添加转义字符即可,但转义时不能用双引号 '<a href = "javascript:do(\"something\");">'---这样的话解析时something前的双引号会被作为href属性的结束
另外也可以用html转义字符来代替
二、C#中单双引号的区别
1、双引号是定义字符串的,string类型
2、单引号是定义单个字符的,char类型
3、split函数用到的是char,即单引号的而非双引号
4、a.tostring()和convert.tostring(a)效果一样
三、sql中单双引号的区别
1、双引号中的字段会被编译器解析成html代码输出
2、单引号里的变量不会被解析
3、查询语句中字段是文本型的用单引号,数字型的可以不用引号
4、sql语句只能用双引号括起来,sql里面的字符变量用单引号括起来(数字型可以不用引号)
5、sql中单引号也作为转义字符 select '''1' 结果:’1
6、实例:'"+Login.Name+"'
- Name指的是变量名,与数据库中的字段匹配
- '"+Login.Name+"' 就是你输入的值
- 假如只有单引号没有双引号,系统会认为变量是Login.Name,而这个值是固定的,我们需要的是一个变量,所以得再加一个双引号(使Login.Name能被解析),至于+就是连接字符串的意思
- 若只有双引号没有单引号系统会报错:列名无效
7、sql中若有字段单独被双引号包围,则被当作列名处理(不论位置在哪里)
select "Id" from Tb 等效于 select Id from Tb
要么生,要么死