常用工具函数js

/**
 * @param {string} url
 * @returns {Object}
 */
//获取url上面的参数
export function getUrlParams(key) {
    let search = decodeURIComponent(location.search)
    let pattern = new RegExp('(?:\\?|&)' + key + '=((?:.|\n|\r)*?)(&|\\?|$)')
    let ret = pattern.exec(search)
    if (ret && ret[1]) {
        return ret[1]
    } else {
        return ''
    }
}

2.​​isObject​​ 判断对象

// 排除 `null`的情况
function isObject(val) {
  return val !== null && typeof val === 'object';
}

3.​​isDate​​​ 判断​​Date​​

function isDate(val) {
  return Object.prototype.toString.call(val) === '[object Date]';
}

4.​isFile​​ 判断文件类型

function isFile(val) {
  return Object.prototype.toString.call(val) === '[object File]';
}

5.​isBlob​​​ 判断​​Blob​​

function isBlob(val) {
  return Object.prototype.toString.call(val) === '[object Blob]';
}

​​Blob​​ 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取。

6.​isFunction​​ 判断函数

function isFunction(val) {
  return Object.prototype.toString.call(val) === '[object Function]';
}

7.​isStream​​ 判断是否是流

// 这里`isObject`、`isFunction`为上文提到的方法
function isStream(val) {
  return isObject(val) && isFunction(val.pipe);
}

8.trim​​ 去除首尾空格

// `trim`方法不存在的话,用正则
function trim(str) {
  return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
}

9.​isStandardBrowserEnv​​ 判断标准浏览器环境

function isStandardBrowserEnv() {
  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
                                           navigator.product === 'NativeScript' ||
                                           navigator.product === 'NS')) {
    return false;
  }
  return (
    typeof window !== 'undefined' &&
    typeof document !== 'undefined'
  );
}

10.forEach​​ 遍历对象或数组

 
function forEach(obj, fn) {
  // Don't bother if no value provided
  // 如果值不存在,无需处理
  if (obj === null || typeof obj === 'undefined') {
    return;
  }

  // Force an array if not already something iterable
  // 如果不是对象类型,强制转成数组类型
  if (typeof obj !== 'object') {
    obj = [obj];
  }

  if (isArray(obj)) {
    // Iterate over array values
    // 是数组,for循环执行回调fn
    for (var i = 0, l = obj.length; i < l; i++) {
      fn.call(null, obj[i], i, obj);
    }
  } else {
    // Iterate over object keys
    // 是对象,for循环执行回调fn
    for (var key in obj) {
       // 只遍历可枚举属性
      if (Object.prototype.hasOwnProperty.call(obj, key)) {
        fn.call(null, obj[key], key, obj);
      }
    }
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值