zoukankan      html  css  js  c++  java
  • 参数类型的判断

    /*
    * 入口函数的逻辑判断:
    * 1、如果参数转换为布尔类型为false,那么直接返回新实例即可
    * 2、如果传入的是函数,那么把这个函数加到xxx,返回新实例即可
    * 3、如果传入的是字符串,判断是不是html字符串,如果是xxx,不是则当做选择器处理
    * 4、如果传入的是数组或伪数组,那么xxx
    * 5、如果传入的是其他数据,xxxx
    * */

    // 判断数据是不是html字符串
    function isHTML( str ) {

    // 如果传入的不是字符串,直接返回false
    if ( typeof str !== 'string' ) {
    return false;
    }

    // 如果传入的是字符串,看看这个字符串结构符不符合html字符串结构,符合返回true
    if( str[ 0 ] === '<' && str[ str.length - 1 ] === '>' && str.length >= 3 ) {
    return true;
    }

    // 不符合返回false
    return false;
    }

    // 把传入的html字符串解析成对应的DOM
    function parseHTML( html ) {
    var tempDiv = document.createElement('div');
    tempDiv.innerHTML = html;
    return tempDiv.childNodes;
    }

    // 判断数据是不是对象类型
    function isObject( obj ) {

    if( (typeof obj === 'object' && obj !== null) || typeof obj === 'function' ) {
    return true;
    }

    return false;
    }

    // 判断数据是不是数组或伪数组
    function isLikeArray( likeArray ) {

    // 过滤 function、window、!object
    if( typeof likeArray === 'function'
    || likeArray.window === likeArray || !isObject( likeArray ) ) {
    return false;
    }

    // 判断是不是真数组
    if( likeArray instanceof Array ) {
    return true;
    }

    // 判断是不是伪数组,要么length值为0,
    // 要么length值为number,并且还得有lenght - 1这个属性
    if( likeArray.length === 0
    || ( typeof likeArray.length === 'number' && (likeArray.length - 1) in likeArray ) ) {
    return true;
    }

    return false;
    }

    // 判断是不是函数
    function isFunction( fn ) {
    return typeof fn === 'function';
    }

    // 判断是不是字符串
    function isString( str ) {
    return typeof str === 'string';
    }

  • 相关阅读:
    BZOJ 3744 Gty的妹子序列
    BZOJ 3872 Ant colony
    BZOJ 1087 互不侵犯
    BZOJ 1070 修车
    BZOJ 2654 tree
    BZOJ 3243 向量内积
    1003 NOIP 模拟赛Day2 城市建设
    CF865D Buy Low Sell High
    CF444A DZY Loves Physics
    Luogu 4310 绝世好题
  • 原文地址:https://www.cnblogs.com/luxiaoxiao/p/6099579.html
Copyright © 2011-2022 走看看