文档章节

javascript使用笔记

吟啸_徐行
 吟啸_徐行
发布于 2013/04/01 17:02
字数 1087
阅读 121
收藏 0

问题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
博文 109
码字总数 15832
作品 0
深圳
高级程序员
私信 提问
《JavaScript权威指南》笔记(二)

第二篇笔记的内容主要涉及:数据类型转换,函数、对象、数组的创建以及null与undefined的比较。 1. javascript中类型转换的方法: (1)数字-->字符串: number+" "; String(number); number...

小微
2012/08/28
0
7
读《JavaScript高级程序设计》

1、JavaScript学习笔记1:JavaScript学前介绍 http://my.oschina.net/bluefly/blog/478575 2、JavaScript学习笔记2:JavaScript基本概念 http://my.oschina.net/bluefly/blog/484445......

slyso
2015/07/14
0
0
JavaWeb01-HTML篇笔记(七)

.1 案例三:完成对注册页面的数据的简单校验.1.1.1 需求: 对注册页面的数据进行非空的简单校验!!!如果有某个值没有输入,点击提交,弹出一个对话框进行提示!! 1.1.2 分析:1.1.2.1 技术分...

我是小谷粒
04/28
0
0
JEPLUS平台JS事件的操作技巧——JEPLUS软件快速开发平台

JEPLUS平台JS事件的操作技巧 JEPLUS平台使用的是EXTJS4,很多时候一些客户不清楚平台JS事件的API怎么调用,以及JS事件API都有哪些,所以今天这个笔记就简单介绍一些JEPLUS平台JS事件的一些操...

JEPLUS
06/27
0
0
day03_js学习笔记_03_js的事件、js的BOM、js的DOM

day03js学习笔记03_js的事件、js的BOM、js的DOM ============================================================================= 涉及到的知识点有: ==================================......

黑泽明军
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

编程价值观、原则、模式

读自《实现模式》 模式,即是针对特定问题的通用解决方案。 每个模式都承载这一点点理论,但实际编程中存在着一些更加深远的影响力,远不是孤立的模式所能概括的。 价值观是编程过程的统一支...

遥借东风
3分钟前
0
0
php分割二级域名做跳转处理方法

使用php中的全局变量 $_SERVER['HTTP_HOST'] ,可以获得用户当前访问的域名字符串,在这里面查询自己定义的各个子域名字符串,然后使用header函数重定向到不同的页面 代码如下 if( strpos($...

Mr_Azaz
5分钟前
0
0
容器之Zookeeper的使用

我们使用zookeeper时,都是在Linux上安装zookeeper,之后启动时要加入配置文件。 使用docker之后,我们可以直接使用镜像运行容器,镜像可以从docker.hub上下载,地址是https://hub.docker.co...

克虏伯
昨天
3
0
esxi 更换ssl证书

概述 就是想换一个证书而已,你可以通过下面的途径去申请一个泛解析域名的证书之后再esxi上安装上 使用阿里云域名api申请Let’s Encrypt泛域名免费ssl证书 申请完成证书之后进行下一步 操作 ...

bboysoulcn
昨天
1
0
PLC编程入门:梯形图

梯形图(LAD)是PLC编程的最佳可视化语言,它看起来非常类似于继电器电路图,因此如果 你对继电器控制和电子电路有所了解的话,那么学起来会非常容易! 在这个教程中,我们将学习关于使用梯形...

汇智网教程
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部