一、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

 


 

要么生,要么死