基础、引用数据类型判断,转换

106 阅读1分钟
基础、引用数据类型判断,转换 参考代码vue.js v2.6.14 源码
  • 判断是否未定义
    function isUndef (v) {
        return v === undefined || v === null
    }
  • 判断是否已定义
    function isDef () {
        return v !== undefined && v !== null
    }
  • 判断是否为 true
    function isTrue (v) {
        return v === true
    }
  • 判断是否为 false
    function isFalse (v) {
        return v === false
    }
  • 判断是否属于基本数据类型

    判断基本数据类型可以使用 typeof

    function isPrimitive (value) {
        return (
            typeOf value === 'string' ||
            typeOf value === 'number' ||
            typeOf value === 'symbol' ||
            typeOf value === 'boolean' ||
        )
    }
  • 判断是否为 object 类型

    typeOf null 判断结果为 object,因此需要单独排除

    function isObject (obj) {
        return obj !== null && typeof obj === 'object'
    }
  • 判断 value 数据类型
    let _toString = Object.prototype.toString;
    function toRawType (value) {
        return _toString.call(value).slice(8, -1)
    }
  • 判断是否为 promise 对象
    function isDef () {
        return v !== undefined && v !== null
    }
    function isPromise (val) {
      return (
        isDef(val) &&
        typeof val.then === 'function' &&
        typeof val.catch === 'function'
      )
    }
  • 将 value 转化为 string 类型
    function toString (val) {
      return val == null
        ? ''
        : Array.isArray(val) || isObject(val)
          ? JSON.stringify(val, null, 2)
          : String(val)
    }
  • 将 value 转化为 number 类型,若无法转化,返回原数据
    function toNumber (val) {
      var n = parseFloat(val);
      return isNaN(n) ? val : n
    }