zoukankan      html  css  js  c++  java
  • javascript常用的小方法

    1、求阶乘

    1 function factorial(num){
    2     if(num<=1){
    3         return 1;
    4     }else{
    5         return num*arguments.callee(num-1);
    6     }
    7 }

    2、求随机数n到m之间的数,包含m和n

    1 function selectFrom(lowerValue,upperValue){
    2     return Math.floor(Math.random()*(upperValue-lowerValue+1)+lowerValue);
    3 }

    3、判断属性是存在与对象还是存在于原型中,True为原型中,False为对象中

    1 function hasPrototypeProperty(object,name){
    2     return !object.hasOwnProperty(name)&&(name in object);
    3 }

    4、用于检测是否为数组

    1 function isArry(value){
    2     return Object.prototype.toString.call(value)=="[object Array]";
    3 }

    5、用于检测是否为函数

    1 function isFunction(value){
    2     return Object.prototype.toString.call(value)=="[object Function]";
    3 }

    6、用于检测是否为正则表达式

    1 function isRegExp(value){
    2     return Object.prototype.toSource.call(value)=="[object RegExp]";
    3 }

    7、使用下面代码可以跨浏览器取得窗口左边和上边的位置

    1 var leftPos=(typeof window.screenLeft=="number")?window.screenLeft:window.scrollX;
    2 var topPos=(typeof window.screenTop=="number")?window.screenTop:window.scrollY;

    8、获取页面视口的大小

     1 var pageWidth=window.innerWidth,pageHeight=window.innerHeight;
     2 if(typeof pageWidth!="number"){
     3     if(document.compatMode=="CSS1Compat"){//判断是否属于标准模式
     4         pageWidth=document.documentElement.clientWidth;
     5         pageHeight=document.documentElement.clientHeight;
     6     }else{
     7         pageWidth=document.body.clientWidth;
     8         pageHeight=document.body.clientHeight;
     9     }
    10 }

     9、获取href参数数组

     1 function getQueryStringArgs(){
     2     //获取查询字符串并去掉开头的问号
     3     var qs=(location.search.length > 0 ? location.search.substring(1) : ""),
     4         //保存数据的对象
     5         args={},
     6         //取得每一项
     7         items=qs.length ? qs.split("&"):[],
     8         item=null,
     9         name=null,
    10         value=null,
    11         //在for循环中使用
    12         i= 0,
    13         len=items.length;
    14     for(i=0;i<len;i++){
    15         item=items[i].split("=");
    16         name=decodeURIComponent(item[0]);
    17         value=decodeURIComponent(item[1]);
    18         if(name.length){
    19             args[name]=value;
    20         }
    21     }
    22     return args;
    23 }

     10、将原型对象作为通用函数的参数,让通用函数返回创建的对象(每次创建完对象退出New函数作用域时,临时的new_函数对象会被自动释放。由于new_的prototype属性被设置为新的原型对象,其原来的原型对象和new_之间就已解开了引用链,临时函数及其原来的原型对象都会被正确回收了。)

     1 function New(aClass,aParams){//通用创建函数
     2     function new_(){ //定义临时的中转函数壳
     3         aClass.Create.apply(this,aParams); //调用原型中定义的构造函数,中转构造逻辑及构造函数
     4     };
     5     new_.prototype=aClass; //准备中转原型对象
     6     return new new_();  //返回建立最终建立的对象
     7 }
     8 var Person={ //定义的类
     9     Create:function(name,age){
    10         this.name=name;
    11         this.age=age;
    12     },
    13     SayHello:function(){
    14         alert("Hello,I'm "+this.name);
    15     },
    16     HowOld:function(){
    17         alert(this.name+" is "+this.age+" years old.");
    18     }
    19 };
    20 var BillGates=New(Person,["Bill Gates",53]); //调用通用函数创建对象,并以数组形式传递构造函数参数
    21 BillGates.SayHello();
    22 BillGates.HowOld();

     3、添加和移除处理程序

     1 var EventUtil={
     2     addHandler:function(element,type,handler){
     3         if(element.addEventListener){
     4             element.addEventListener(type,handler,false);
     5         }else if(element.attachEvent){
     6             element.attachEvent("on"+type,handler);
     7         }else{
     8             element["on"+type]=handler;
     9         }
    10     },
    11     getEvent:function(event){
    12         return event?event:window.event;
    13     },
    14     getTarget:function(event){
    15         return event.target||event.srcElement;
    16     },
    17     preventDefault:function(event){
    18       if(event.preventDefault){
    19           event.preventDefault();
    20       }else{
    21           event.returnValue=false;
    22       }
    23     },
    24     removeHandler:function(element,type,handler){
    25         if(element.removeEventListener){
    26             element.removeEventListener(type,handler,false);
    27         }else if(element.detachEvent){
    28             element.detachEvent("on"+type,handler);
    29         }else{
    30             element["on"+type]=null;
    31         }
    32     },
    33     stopPropagation:function(event){
    34         if(event.stopPropagation){
    35             event.stopPropagation();
    36         }else{
    37             event.cancelBubble=true;
    38         }
    39     }
    40 };
  • 相关阅读:
    Android编译源码过程和重点
    Ubuntu 10.04 下android 源码下载与编译
    Android2.3系统的overscroll效果
    【转】打造人脉不如打造自己
    Android生命周期
    Android Bitmap和Canvas学习笔记
    Android获取手机和系统版本等信息的代码
    Android网络连接处理学习笔记
    Android风格与主题
    Android程序反编译的方法
  • 原文地址:https://www.cnblogs.com/cmsdn/p/2790782.html
Copyright © 2011-2022 走看看