各种知识点(以后会整理)
极简主义法继承法
var Tank={ createNew:function(w,h){ var rect={}; rect.width=w; rect.height=h; rect.area=function(){ return this.width * this.height; }; return rect; } }; var littleTank={ createNew:function(w,h){ var rect=Tank.createNew(w,h); rect.perimeter=function(){return this.width*2+this.height*2;}; return rect; } }; var littletank1=littleTank.createNew(3,5); alert(littletank1.area()); alert(littletank1.perimeter());
获得设备的宽高
//javascript方法 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文全文高: document.body.scrollHeight 网页被卷去的高: document.body.scrollTop 网页被卷去的左: document.body.scrollLeft 网页正文部分上: window.screenTop 网页正文部分左: window.screenLeft 屏幕分辨率的高: window.screen.height 屏幕分辨率的宽: window.screen.width 屏幕可用工作区高度: window.screen.availHeight 屏幕可用工作区宽度: window.screen.availWidth //jquery方法 获取浏览器显示区域的高度 : $(window).height(); 获取浏览器显示区域的宽度 :$(window).width(); 获取页面的文档高度 :$(document).height(); 获取页面的文档宽度 :$(document).width(); 获取滚动条到顶部的垂直高度 :$(document).scrollTop(); 获取滚动条到左边的垂直宽度 :$(document).scrollLeft();
JS小数取整
parseInt(5/2) //去除小数部分 Math.ceil(5/2) //向上取整 Math.round(9/2) //四舍五入 Math.floor(5/2) //向下取整
全选(有问题)
<div class="components-list"> <input type="checkbox" name="checkbox_name" id="checkbox_name_1" />1<br /> <input type="checkbox" name="checkbox_name" id="checkbox_name_2" />2<br /> <input type="checkbox" name="checkbox_name" id="checkbox_name_3" />3<br /> <input type="checkbox" name="checkbox_name" id="checkbox_name_4" />4<br /> <input type="checkbox" name="checkedAll" id="checkedAll"/>全选/取消全选 </div> <script> $("#checkedAll").click(function(){ //try{ if($(this).attr("checked") == true){ //check all $("input[name='checkbox_name']").each(function(){ $(this).attr("checked",true); }); }else{ $("input[name='checkbox_name']").each(function(){ $(this).attr("checked",false); }); } //}catch(e){ //alert(e.description+e.name+e.message) //} }); </script>
验证整数(有问题)
var str=5; var ex=/^d+$/; if(ex.test(str)){ alert(str+"是整数"); }else{ alert("fuck!"); //fuck! }
跨浏览器的事件处理程序
var EventUtil={ addHandler:function(element,type,handler){ if(element.addEventListener){ element.addEventListener(type,handler,false); }else if(element.attachEvent){ element.attachEvent("on"+type,function(){ return handler.call(element,window.event); //解决this指向window问题 }); } else{ element["on"+type]=handler; } }, removeHandler:function(element, type, handler){ if(element.removeEventListener){ element.removeEventListener(type, handler, false); }else if(element.detachEvent){ element.detachEvent("on"+type,handler); }else{ element["on"+type]=null; } } };
setTimeout(fn, 0)的意义
setTimeout(fn, 0)添加的函数是异步事件,需要等同步时间做完之后再执行,所以函数fn在同步时间做完之才能正常执行的话,这样写不会弹出错误;
检查一个数是否为整数或浮点数
function isInt(n) {return typeof n === 'number' && n % 1 == 0;} function isFloat (n) {return n===+n && n!==(n|0);}
用jQuery把页面上的一个tag换成另一个tag
<code> A </code> <code> B </code> <code> C </code> //change to <pre> A </pre> <pre> A </pre> <pre> A </pre> $('code').contents().unwrap().wrap('<pre/>');
统计一个字符串中某段子串出现的次数
var temp = "This is a string."; var count = temp.match(/is/g).length;
cookie操作方法(P631)
var CookieUtil={ get: function(name){ var cookieName=encodeURIComponent(name)+"=", cookieStart=document.cookie.indexOf(cookieName), cookieValue=null; if(cookieStart>-1){ var cookieEnd=document.cookie.indexOf(";",cookieStart);//在cookieStart位置之后搜索到的“;”为cookieEnd的值 if(cookieEnd == -1){ var cookieEnd=document.cookie.length; //找不到";"的话,cookieEnd为cookie的长度 } cookieValue=decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd)); return cookieValue; } }, set:function(name,value,expires,path,domain,secure){ var cookieText=encodeURIComponent(name)+"="+encodeURIComponent(value); if(expires instanceof Date){ cookieText+=";expires="+ expires.toGMTString(); } if(path){ cookieText+=";path="+path; } if(domain){ cookieText+=";domain="+domain; } if(secure){ cookieText+="; secure"; } document.cookie=cookieText; }, unset:function(name,path,domain,secure){ this.set(name,"",new Date(0),path,domain,secure); } };
使用for-in循环遍历对象属性,并过滤从原型链上下来的属性
var hasOwn=Object.prototype.hasOwnProperty; for (var i in man) if(hasOwn.call(man,i)){ console.log(i,":",man[i]); }
扩展内置原型(不介意)
if (typeof Object.protoype.myMethod !== "function") { Object.protoype.myMethod = function () { // 实现... }; }
避免隐式类型转换
var zero = 0; if (zero === false) { // 不执行,因为zero为0, 而不是false } // 反面示例 if (zero == false) { // 执行了... } (在比较值和表达式类型的时候始终使用===和!==操作符)
第一天(开始尝试实例和阅读博客了)
最新推荐文章于 2024-07-05 16:16:42 发布