2013.11.19
1.验证手机号码:
var p = /^[1][3-8]\d{9}$/; // 验证手机 需限制手机位数是11位,所以加上 ^ $
2.
var v = 0;
var a = (v++); // 0
var b = (v++); // 1
3.改函数
1 function a (){ 2 this.title = "PP"; 3 4 return function(){ 5 setTimeout(function(){ 6 console.log(this.title); 7 }) 8 } 9 } 10 11 var _a = a(); // a在全局里面执行, this 就是window 12 _a(); // "PP"
4.setTimeout 跟 setInterval 的性能差别
setTimeout 只会执行一次。setInterval 会每隔一段时间执行。但是不鼓励使用setInterval.
当回调函数的执行被阻塞时,setInterval
仍然会发布更多的毁掉指令。在很小的定时间隔情况下,这会导致回调函数被堆积起来。
在 foo
被阻塞的时候,setInterval
仍然在组织将来对回调函数的调用。 因此,当第一次 foo
函数调用结束时,已经有 10 次函数调用在等待执行。
setTimeout的第一个参数运行在全局环境
最简单也是最容易控制的方案,是在回调函数内部使用 setTimeout
函数。(转载至:http://www.exiatian.com/%E9%AB%98%E6%80%A7%E8%83%BDsettimeout-%E5%92%8C-setinterval/)
下面是setInterval() 做的轮播图:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 3 <title>jQuery常用焦点图,可做选项卡切换-大前端</title> 4 <link href="http://img.daqianduan.com/ui/favicon.ico" rel="shortcut icon"> 5 <style type="text/css"> 6 7 *{margin: 0;padding: 0;} 8 9 .demo{ width:950px; height:300px; position:relative; overflow:hidden; border:#ddd 1px solid;} 10 11 .num{ position:absolute;right:10px; top:10px; z-index:10;} 12 13 .num a{ width:16px; height:16px; display:inline-block; text-align:center; margin:0 3px; cursor:pointer;} 14 15 .num a.cur{ background:#ff6700;color:#fff;} 16 17 .demo ul{ position:relative; z-index:5;} 18 19 .demo ul li{ position:absolute; display:none;} 20 21 </style> 22 23 </head> 24 <body> 25 26 <div class="demo"> 27 28 <div class="num"><a class="cur">1</a><a class="">2</a></div> 29 30 <ul> 31 <li style="display: block;"><a href="" target="_blank"><img src="pic_1.jpg"></a></li> 32 <li style="display: none;"><a href="" target="_blank"><img src="pic_2.jpg"></a></li> 33 </ul> 34 35 </div> 36 <script type="text/javascript" src="http://static.vas.pptv.com/vas/global/jquery/v_20121107163320/jquery-1.7.2.min.js"></script> 37 38 <script type="text/javascript"> 39 $(function(){ 40 var sw = 0; 41 $(".demo .num a").mouseover(function(){ 42 sw = $(this).index(); 43 myShow(sw); 44 }); 45 46 function myShow(i){ 47 $(".demo .num a").eq(i).addClass("cur").siblings("a").removeClass("cur"); 48 $(".demo ul li").eq(i).stop(true,true).fadeIn(600).siblings("li").fadeOut(600); 49 } 50 51 $(".demo ul").hover( 52 function(){ 53 if(timer){ 54 clearInterval(timer); 55 } 56 }, 57 function(){ 58 timer = setInterval(function(){ // timer() timer 是setInterval()的结果 :是一个数字 不能作为函数执行 59 myShow(sw); 60 sw ++; 61 if(sw == 2){ 62 sw = 0; 63 } 64 },800); 65 } 66 ); 67 var timer = setInterval(function(){ 68 myShow(sw); 69 sw ++; 70 if(sw == 2){ 71 sw = 0; 72 } 73 }, 800); 74 75 }) 76 </script> 77 </body> 78 </html>
这里的轮播的controller 就是1:鼠标移动到a标签上面;2:鼠标移动到这个滑动模块整体上面的变化;3:滑动自己进行即setInterval函数。而这些事件触发的都是一个myShow()函数,所以可以重用这个函数。
疯癫不成狂,有酒勿可尝;世间良辰美,终成水墨白。