javascript使用笔记
javascript使用笔记
吟啸_徐行 发表于5年前
javascript使用笔记
  • 发表于 5年前
  • 阅读 111
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

问题1:(函数返回值问题)

今天这问题算是把头搞大了

var str="    1   21  rtrt";//长度为16

str.replace(/(\s+)/g,'');//将空格全部去掉

console.log(str.length);//长度还是16,有人知道这是为什么么?为什么字符串改变了,但是长度却不变啊。

总算是发现了,replace只是个返回值的函数,它不改变原来的字符串。哎,感觉又一次重复了这种函数返回值问题

问题2:(闭包问题)

今天碰到事件的函数中又绑定一个函数(事件嵌套),结果是里层事件会在每次外层事件执行的时候重复绑定(累加的趋势,貌似就像对象多次创建一样),结果是里层事件触发的时候次数会等于重复绑定次数,所以要注意不要随便事件里面嵌套事件。

2014/2/20号又是嵌套了,结果是外层触发后里层才能触发,如果这时又触发了别的事件则里面的事件又无法触发了,这时咋回事啊(刚明白了,原来是原来绑定事件的元素执行时被刷新成新元素了,还是该用jquery的delegate或者live方法绑定才行,详情看http://my.oschina.net/wizardpisces/blog/201623

问题3:(clone问题)

jquery的$(element).appendTo(container)会先remove element,然后才append到container,为了防止原始元素被删除可以$(element).clone().appendTo(container)

问题4:(元素属性改变问题,未解决)

当使用$(element).css({"background":"white"});改变background后,css伪类hover对element的作用就失去了,暂时不知道是怎么回事

问题5:mouseenter和mouseleave的区别

 $("li").each(function(i) {
            //删除的鼠标划过的显示与隐藏
            $(this).mouseover(function() {
                $(this).find(".del").fadeIn(10);
            })
            $(this).mouseleave(function() {
                $(this).find(".del").fadeOut(10);
            })
        })

上面的代码中如果不是用的mouseleave而是mouseout的话你会发现尚未离开类名的.del这个DIV这个DIV有时候就会闪动。那是因为你可能离开了该DIV的子元素,所以会出发mouseout事件。具体mouseleave和mouseout两者之间的区别主要有以下两点:

1.不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。

2.只有在鼠标指针离开被选元素(整个区域)时,才会触发 mouseleave 事件。

问题6,防止XSS的经典方法

function htmlEncode(html)
{
arguments.callee.textNode.nodeValue=html;
return arguments.callee.div.innerHTML;
}
htmlEncode.textNode=document.createTextNode("");
htmlEncode.div=document.createElement("div");
htmlEncode.div.appendChild(htmlEncode.textNode);
将数据转为文本

问题7,new Date()的初始化参数

new Date(年,月,日,时,分,秒);

谷歌浏览器支持的参数种类比较多,但是到了其它浏览器就出问题了

要注意0表示一月

问题8,console.log()问题

在低版本的IE内核浏览器中,console.log()会中断后面代码的执行,所以在最后一定要删掉或注释掉console.log;

问题9,lastIndex(方法 RegExp.exec() 和 RegExp.test() 的共同起始检索位置)

var re1 = /.*bbb/g;

alert(re1.test("abbbaabbbaaabbbb1234")+"");//true

alert(re1.exec("abbbaabbbaaabbbb1234")+"");//null

alert(typeof(re1));//object从未被改变过

看到了半天也不晓得为什么,http://www.w3school.com.cn/js/jsref_lastindex_regexp.asp是lastIndex的详解,看了你就恍然大悟了

问题10:javascript获取某个月的天数方法

Javascript里面的new  Date("xxxx/xx/xx")这个日期的构造方法有一个妙处,当你传入的是"xxxx/xx/0"(0号)的话,得到的日期是"xx"月的前一个 月的最后一天("xx"月的最大取值是69,题外话),如果传入"1999/13/0",会得到"1998/12/31"。而且最大的好处是当你传 入"xxxx/3/0",会得到xxxx年2月的最后一天,它会自动判断当年是否是闰年来返回28或29,不用自己判断,太方便了!!所以,我们想得到选 择年选择月有多少天的话,只需要

var d=new Date("选择年/选择月+1/0");

alert(d.getDate());

而且getMonth()获取的月数需要+1才是真实值

问题11:位移运算只用于整数,如果带小数的数据参与位移运算会被取整 移动0位其实并没有移动,只是取整了

mround = function (r) { return r >> 0; }

问题12:Google Chrome不支持本地添加cookie,其他浏览器测试没问题

To be continued.....

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 18
博文 107
码字总数 15529
×
吟啸_徐行
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: