YUI的类型判断函数

1.首先定义一个关于类型的对象,及相关变量

类型判断对象

 

类型判断

   // L.type返回一个类型,会类型对象中查找 || 调用 tostring查找  || 如果上述都没有且存在,那返回的就是一个对象  ||  null

3. 定义一个识别是否为原生函数的函数(主要针对ES5)

用正则检测是否原生函数
//若是原生函数会返回  function 函数名() { [native code ] }
// 如果配置中选择不使用ES5的方法,会全部使用重写的方法

 

4. 检测各种类型的函数

类型检测函数
//对象检测,若failfn为false,function传入返回true,否则返回false
L.isObject = function(o, failfn) {
    var t = typeof o;
    return (o && (t === 'object' ||
        (!failfn && (t === 'function' || L.isFunction(o))))) || false;
};
L.isString = function(o) {
    return typeof o === 'string';
};
L.isUndefined = function(o) {
    return typeof o === 'undefined';
};
L.isValue = function(o) {
    var t = L.type(o);

    switch (t) {
        case 'number':
            return isFinite(o);

        case 'null': // fallthru
        case 'undefined':
            return false;

        default:
            return !!t;
    }
};
L.now = Date.now || function () {
    return new Date().getTime();
};

//new Date() 如果传参是一个非法的:

//  第一种情况,传参全部是字母,在IE9,chrome,ff,opera,safari返回Invalid Date,  IE6-IE8返回一个NaN;
//  第二种情况,传参有一部分是数字,在chrome会自己创建 一个正确的时间,其余的与第一种情况一样;

// 因此检测一个对象是否是日期对象 必须检测3项,如果全部满足就是正确的日期对象

//safari中 typeof(document.getElementsByTagName(‘a’) => ‘function’

//isValue  检测一个值不为NaN,undefined, ‘ ’

 

5.应用,扩展三个函数,用于去除前后的空格

去除空格正则表达式

 

去除空格正则表达式

6. 关于类型判断的一些注意点

     a.  safari中关于元素收集集合类型的判断问题

函数


  b. IE8以下对一些函数认为是'object‘

  

IE
//IE8及以下的会是object
posted @ 2013-08-28 11:10  独角xi  阅读(207)  评论(0编辑  收藏  举报