总结一些task02学习到的知识以及踩过的坑。

##积累 ###深度克隆
当需要克隆的对象是对象和数组的时候,需要进行深度克隆,在改变克隆后的对象时才不会影响原对象。
方法是通过递归克隆所有属性和方法,或数组中的元素。

###正则表达式
^和$的用处:之前一直不太明白这两个的用处,觉得可有可无,不清楚开始和结束标识的意思。现在知道就是在需要检验的字符串中开始结尾不能再比^和$包含的正则表达式多出内容,否则不匹配。
如果正则表达式中需要用到变量,则必须使用 new RegExp()
$1 的用法:在做属性选择器的时候,需要匹配 [type=XXX],想法就是用正则来找到[ ] ,然后就涉及到一个问题,要去掉中括号保留中括号里面的字符串,这时候就可以用到$1, 具体做法是 selector.replace(/\[([^\[\]]*)\]/, '$1')

###DOM0事件和DOM2事件 DOM0事件是handler例如:foo.onclick = fn DOM2是事件监听例如:addEventListener('click', fn, false) IE下是 attachEvent('onclick', fn) 区别在于, DOM2 监听事件可以让多个函数响应一个事件而DOM0 事件处理器不行
DOM0清除事件直接赋值null,DOM2清除所有事件则需要复制原DOM

###AJAX 如果type = getsend的数据直接在url上
如果type = post 则将需send(data),data可以是用&连接的字符串,或者键值对象。并且需要 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")