关于js中单双引号以及转义符的理解

关于js中单引号(')和双引号(")的使用以及转义的理解

  这几天一直在画页面,身为开发人员的我之所以要画页面是因为当前项目中的页面上所有的东西都是从数据库中取得的,也就是动态的,类似于我们设计自己的个人QQ空间,但因为是大型平台,有自定义业务的概念
,所有更为复杂,在这就不多说了,我所谓的画页面就是如何把数据结合逻辑,变成HTML,其中遇到的最大的问题就是我今天要说的; 

  一个页面上有一个查询,当然查询的条件,字段类型都是动态的,要根据数据类型生成不同的文本框,如果是varchar2就生成不同的,
如果是date就生成加入时间选择js的,页面上有一个添加新的条件组的按钮,链接到一个js事件,里面就要做关于文本框的判断,我们只看判断部分
如下;

if(tlist[index].value=="date")
    {

     table.rows[t].cells[2].innerHTML=' onclick="WdatePicker({dateFmt:"yyyy-MM-dd"})"
onfocus="WdatePicker({dateFmt:"yyyy-MM-dd"})" class="Wdate"
/>';
    }

    else

    {

     table.rows[t].cells[2].innerHTML='';
    }

  重点为红色部分,
这样写我本来认为是无可厚非的,
但是如果这段代码执行一次,就汇报js错误,错误信息是“语法错误”,js本身为弱语言,单引号和双引号如果是但用的话其实可以混淆的,但如果一起用就要区分,例如上段代码我可以把单引号和双引号对换,也是可以的,
但如果只改变其中一处就需要用+号链接, 意义也不同了,例如

"'b'" 可以 ,但""b""就会出错,需要""+"b"+""

  无法通过单引号双引号的改变来解决问题,我就开始寻求别的思路,我尝试了使用 \ (转义符)来解决,如下

onclick="WdatePicker({dateFmt:\"yyyy-MM-dd\"})"

  但还是不行,个人认为原因是js还是在html的作用中,而不是java,所以我想到了使用"来解决,

table.rows[t].cells[2].innerHTML=' onclick="WdatePicker({dateFmt:"yyyy-MM-dd"})"
onfocus="WdatePicker({dateFmt:"yyyy-MM-dd"})" class="Wdate"
/>';

 

  问题解决了,
我生平第一次感觉到了这个东西的神奇, 原来只使用过 
,看来在程序的世界中,每一样东西都有他存在的意义, 即使在我们不得已淘汰他们的时候
,也要知道他们有意义的部分,因为这些富有意义的东西可能在某时某刻给我们极大地帮助,而且替代他们的产品未必可以将他们的优点全部传承,人亦如此

时间: 2024-10-20 10:52:12

关于js中单双引号以及转义符的理解的相关文章

再谈PHP中单双引号的区别详解_php实例

在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"Hello World'为非法的字符串定义. 单引号和双引号到底有啥区别呢?下面通过本文学习一下吧. 1.定义字符串 在PHP中,字符串的定义可以使用单引号,也可以使用双引号.但是必须使用同一种单或双引号来定义字符串,如:'Hello"和"Hello'为非法的字符串定义. 定义字符串时,只有一

分析PHP中单双引号的误区和双引号小隐患_php技巧

许多程序员以为在PHP中单引号和双引号是一样的,其实这要看怎么用法,在有些方面它们确实是一样,但有一些方面它们也有着很大的区别,今天小编就来为您说说有哪些区别. 1.一般情况下两者是通用的.但如果双引号内写的是变量就会执行解析操作,而单引号则不解析,这个怎么说?还是举个例子吧. 这下看明白了吧! 2.执行效率不一样,单引号的执行速度要比双引号的执行速度快,如果是一样大型的程序,这方面还是要注意优化的,毕竟PHP属于解释型语言.所以如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如

再谈PHP中单双引号的区别详解

在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"Hello World'为非法的字符串定义. 单引号和双引号到底有啥区别呢?下面通过本文学习一下吧. 1.定义字符串 在PHP中,字符串的定义可以使用单引号,也可以使用双引号.但是必须使用同一种单或双引号来定义字符串,如:'Hello"和"Hello'为非法的字符串定义. 定义字符串时,只有一

mysql-查询语句中单双引号的使用方法

问题描述 查询语句中单双引号的使用方法 $query="insert into books values('".isbn."',.........);这里面为什么字段isbn要同时使用'"isbn"'来包含? 解决方案 这不是sql语句的问题,是程序中组合字符串的问题. 问题中有三个双引号,第一个与第二个匹配,第三个还不知道和那里匹配. isbn是一个字符串变量吧.

php中单双引号的区别

  " " 双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. ' ' 单引号里面的不进行解释,直接输出. 从字面意思上就可以看出,单引号比双引号要快了. 例如: $abc='my name is tome'; echo $abc //结果是:my name is tom echo '$abc' //结果是 abc echo "$abc" //结果是:my name is tom 特别在使用MYSQL语句的时候,双引号和单引号的用法让新手不知所措,在这里

json中,双引号的转义问题

问题描述 使用jsonlib解析json数据时,报错net.sf.json.JSONObject.fromObject(str)Exceptioninthread"main"net.sf.json.JSONException:Expecteda','or'}'atcharacter13of{"name":"aa"bbb"aaa","id":1}数据在保存时没有将双引号转义,是这个样子的{"cont

SQL语句中单双引号的理解

 EG:     StrSql="select * from usersheet where loginname=' "+Login1.UserName+" ' and userpass=' "+Login1.PassWord+" '  "   解析:    loginname 指的就是一个变量名<与数据库里的字段匹配>,   而' "+Login1.UserName+" ' 就是你输入的值,   假如只有单引号,

php中单引号和双引号的区别

如果字符串包含在双引号中,php将对字符串中的一些特殊字符进行解析. 例1: <?php $i=80; $a="hello$i"; $b='hello$i'; echo '<br />$a='.$a; //输出$a=hello80,双引号输出变量的值 echo '<br />$b='.$b; //输出$b=hello$i,单引号输出变量的名称 ?> 例2: <?php $a="hello\""; $b='hello

浅谈PHP中单引号和双引号到底有啥区别呢?_php技巧

在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"Hello World'为非法的字符串定义. 单引号和双引号到底有啥区别呢? PHP允许我们在双引号串中直接包含字串变量. 而单引号串中的内容总被认为是普通字符,因此单引号中的内容不会被转义效率更高. 比如: 复制代码 代码如下: $str='hello'; echo "str is $str"