Vue

Vue源码中9个可借鉴的基础方法

Vue源码中9个可借鉴的基础方法

1、基础判断

    function isUndef(v) {
        return v === undefined || v === null
    }
    function isDef(v) {
        return v !== undefined && v !== null
    }
    function isTrue(v) {
        return v === true
    }
    function isFalse(v) {
        return v === false
    }

2、检查是否是原始值

    function isPrimitive(value) {
        return (
            typeof value === 'string' ||
            typeof value === 'number' ||
            // $flow-disable-line
            typeof value === 'symbol' ||
            typeof value === 'boolean'
        )
    }

3、快速对象检查

    function isObject(obj) {
        return obj !== null && typeof obj === 'object'
    }

4、获取值的原始类型字符串

    var _toString = Object.prototype.toString;

    function toRawType(value) {
        return _toString.call(value).slice(8, -1)
    }

5、严格的对象类型检查

    function isPlainObject(obj) {
        return _toString.call(obj) === '[object Object]'
    }
    // 这里大家可以思考一下为什么使用这种方式,还有下面的正则检查

6、严格的正则类型检查

    function isRegExp(v) {
        return _toString.call(v) === '[object RegExp]'
    }

7、检查是够是有效的数组下标

    function isValidArrayIndex(val) {
        var n = parseFloat(String(val));
        return n >= 0 && Math.floor(n) === n && isFinite(val)
    }

8、值转换为实际的字符串

    function toString(val) {
        return val == null ?
            '' :
            Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) ?
            JSON.stringify(val, null, 2) :
            String(val)
    }

9、值转换为数字以进行持久化

    function toNumber(val) {
        var n = parseFloat(val);
        return isNaN(n) ? val : n
    }
(67)

本文由 Web秀 作者:Javan 发表,转载请注明来源!

关键词:, , , ,

热评文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注