javascript常见构建函数

稿件来源: 阳光企业网站管理系统   撰稿作者: 太阳光   发表日期: 2013-11-29   阅读次数: 47   查看权限: 游客查看

javascript常见构建函数

    function isString(val){
        return val && Object.prototype.toString.call(val) === "[object String]";
    }
    function isNumber(val){
    return val && Object.prototype.toString.call(val) === "[object Number]";
    }
    function isArray(val) {
        return val && Object.prototype.toString.call(val) === '[object Array]';
    }
    function isFunction(val) {
        return val && Object.prototype.toString.call(val) === '[object Function]';
    }
    function isBoolean(val){
       return val === !0 || val === !1 || Object.prototype.toString.call(val) === "[object Boolean]";
    }
    function isDate(val){
        return val && Object.prototype.toString.call(val) === "[object Date]";
    }
    function trim(str) {
        return str.replace(/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, '');
    }
    function escape(val) {
        return val.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
    }
    function unescape(val) {
        return val.replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&quot;/g, '"').replace(/&amp;/g, '&');
    }
    function setAttribute(node, name, value) {
        value == null ? node.removeAttribute(name) : node.setAttribute(name, value)
    }
    function getAttrList(tag) {
        var list = {},reg = /\s+(?:([\w\-:]+)|(?:([\w\-:]+)=([^\s"'<>]+))|(?:([\w\-:"]+)="([^"]*)")|(?:([\w\-:"]+)='([^']*)'))(?=(?:\s|\/|>)+)/g,match;
        while ((match = reg.exec(tag))) {
            list[(match[1] || match[2] || match[4] || match[6]).toLowerCase()] = (match[2] ? match[3] : (match[4] ? match[5] : match[7])) || '';
        }
        return list;
    }
    function each(obj, fn) {
        if (obj && Object.prototype.toString.call(obj) === "[object Array]") {
            for (var i = 0, len = obj.length; i < len; i++) {
                if (fn.call(obj[i], i, obj[i]) === false) {
                    break;
                }
            }
        } else {
            for (var key in obj) {
                if (obj.hasOwnProperty(key)) {
                    if (fn.call(obj[key], key, obj[key]) === false) {
                        break;
                    }
                }
            }
        }
    }
    function map(elements, callback){
        var value, values = [], i, key;
        if (typeof elements.length == 'number'){
            for (i = 0; i < elements.length; i++) {
                value = callback(elements[i], i);
                value != null && values.push(value);
            }
        }else{
            for (key in elements) {
                value = callback(elements[key], key);
                value != null && values.push(value);
            }
        }
        return values;
    }
    function cookies(name,value){
        if(value==undefined){
            var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
            if(arr != null) return unescape(arr[2]); return '';
        }else{
            var exp  = new Date();
            exp.setTime(exp.getTime() + 24*60*60*1000);
            document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
        }
    }
Array.prototype.shuffle = function() {
        var l = this.length;
        for(var r, i = l ;i--;){
            r = parseInt(Math.random() * l);this[r] = [this[i],this[i]=this[r]][0];
        }
        return this;
    };//打乱数组
function format_time(f,s){
        var t = s && new Date(s),k;
        (!t || t == "Invalid Date") && (t = new Date());
        var obj = {
          Y:t.getFullYear(),
          M:t.getMonth()+1,
          D:t.getDate(),
          h:t.getHours(),
          m:t.getMinutes(),
          s:t.getSeconds()
        };
        return f.replace(/([a-zA-Z])/g,function(a){
            k = obj[a];return k ? (a == "Y" ? k : ("0" + k).slice(-2)) : a;
        });
    }//格式化时间
    var cookie={
        set:function (n, j, m) {
            var t = new Date;
            document.cookie = n + "=" + encodeURIComponent(j || "") + ( m ? "; expires=" + t.setTime(t.getTime() + 1000*60*m).toGMTString() : "");
            //domain=" + (m || location.host) + (l ? "; secure":"")
        },
        get:function (a) {
            return(a = document.cookie.match(RegExp("(^|;\\s)" + a + "=([^;]*)", "i"))) ? decodeURIComponent(a[2]) : "";
        }
    };
//构建Array.some
if (!Array.prototype.some){
    Array.prototype.some = function(fun){
        if ("function" != typeof fun)return;
        var len = this.length,thisp = arguments[1];
        for (var i = 0; i < len; i++){
            if (i in this && fun.call(thisp, this[i], i, this))
            return true;
        }
        return false;
    };
}
    if (!Array.prototype.every){
    Array.prototype.every = function(fun){
        'use strict';
        if (this === void 0 || this === null)
            throw new TypeError();
        var t = Object(this);
        var len = t.length >>> 0;
        if (typeof fun !== 'function')
            throw new TypeError();
        var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
        for (var i = 0; i < len; i++){
            if (i in t && !fun.call(thisArg, t[i], i, t))
                return false;
        }
        return true;
    };
}
Function.prototype.method = function (name, fn) {
    typeof this.prototype[name] == "undefined" && (this.prototype[name] = fn);
    return this
};
Number.method("add",function(n){
    return this + (n ? n : 0);
});
console.log((5).add(2));

 

关键词: js,函数,构建函数   编辑时间: 2014-04-03 15:03:42

  • 感到高兴

    0

    高兴
  • 感到支持

    0

    支持
  • 感到搞笑

    0

    搞笑
  • 感到不解

    0

    不解
  • 感到谎言

    0

    谎言
  • 感到枪稿

    0

    枪稿
  • 感到震惊

    0

    震惊
  • 感到无奈

    0

    无奈
  • 感到无聊

    0

    无聊
  • 感到反对

    0

    反对
  • 感到愤怒

    0

    愤怒
0%(0)
0%(0)
共有0 条评论 发言请遵守【相关规定

网友评论

会员头像
发 表同步腾讯微博    验证码:  点击更新请先登陆
  • 暂无评论
关闭模块文章图片 article Pictrue
  • 我的妈妈爸爸
  • 基于koa2+mysql+vue2.0+Element阳光内容管理系统
  • 代码覆盖率工具 Istanbul 入门教程
  • 全栈工程师的武器——MEAN
  • 9款超炫的 CSS3 复选框(Checkbox)
  • 微信开发在线翻译功能
  • CSS3那些不为人知的高级属性
  • 给easyui的datebox添加清空事件
  • flash写字效果
  • kendoUI系列教程之DropDownList下拉菜单
  • kendoUI系列教程之datetimepicker日期时间选择
  • kendoUI系列教程之datepicker日期选择
  • kendoUI系列教程之combobox下拉列表框
  • kendoUI系列教程之colorpicker
  • kendoUI系列教程之calendar日历表
  • kendoUI系列教程之autocomplete自动补齐