文档章节

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
JEPLUS平台JS事件的操作技巧——JEPLUS软件快速开发平台

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

JEPLUS
06/27
0
0
JavaWeb01-HTML篇笔记(七)

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

我是小谷粒
04/28
0
0
day03_js学习笔记_03_js的事件、js的BOM、js的DOM

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

黑泽明军
04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何通过 J2Cache 实现分布式 session 存储

做 Java Web 开发的人多数都会需要使用到 session (会话),我们使用 session 来保存一些需要在两个不同的请求之间共享数据。一般 Java 的 Web 容器像 Tomcat、Resin、Jetty 等等,它们会在...

红薯
今天
1
0
C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
今天
2
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
今天
1
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
今天
1
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部