zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    flask基础 MUI
    flask基础 MongoDB
    falsk 基础 语音识别与语音合成()
    flask基础 websocket ()
    flask基础四 请求上下文()
    flask基础三
    学习整理
    Elasticsearch
    课程学习:Linux系统管理
    课程学习:程序设计与算法
  • 原文地址:https://www.cnblogs.com/fsy0718/p/3286762.html
Copyright © 2011-2022 走看看